
ApiCodeInterceptorConfiguration.$inject = ["$httpProvider"];
ngStrapConfiguration.$inject = ["$asideProvider", "$datepickerProvider", "$timepickerProvider", "$dropdownProvider", "$modalProvider", "$popoverProvider", "$tooltipProvider", "$typeaheadProvider"];
uiBootstrapConfiguration.$inject = ["uibPaginationConfig"];
uiSelectConfiguration.$inject = ["uiSelectConfig"];
AdminController.$inject = ["Meta", "$http", "API", "store", "$state", "$scope", "$rootScope", "User"];
DemoModel.$inject = ["$http", "API", "$resource"];
DemoController.$inject = ["initialList", "Stream", "Sorter", "Demo", "$uibModal", "$log", "$scope", "$state", "$stateParams"];
DemoAddController.$inject = ["Demo", "Upload", "API", "$http", "$uibModal", "$scope", "$state", "$stateParams"];
DemoUpdateController.$inject = ["Demo", "$uibModal", "$scope", "$state", "$stateParams"];
PlayPlanModel.$inject = ["$http", "API", "$resource"];
PlayPlanController.$inject = ["initialList", "Stream", "Sorter", "Demo", "PlayPlan", "$uibModal", "$log", "$scope", "$state", "$stateParams"];
RobotModel.$inject = ["$http", "API", "$resource"];
RobotController.$inject = ["initialList", "Stream", "Sorter", "User", "ConfirmModal", "$scope", "$state", "$stateParams"];
SigninController.$inject = ["$http", "API", "User", "Meta", "store", "$state", "$timeout"];
RegisterController.$inject = ["$scope", "Register", "$state", "$timeout", "store", "User", "API", "$http"];
RegisterModel.$inject = ["API", "$resource"];
StreamModel.$inject = ["$http", "API", "$resource"];
StreamsController.$inject = ["initialList", "Stream", "Sorter", "User", "ConfirmModal", "$scope", "$state", "$stateParams"];
UserModel.$inject = ["API", "$resource"];
UsersController.$inject = ["users", "User", "roles", "Department", "AdminInfo", "Sorter", "AsidePanel", "Upload", "API", "$scope", "$state", "$stateParams", "$q", "$window"];
vnAutoHeightComponent.$inject = ["$window", "$document", "$rootScope"];function AdminController(
    Meta,
    $http,
    API,
    store,
    $state,
    $scope,
    $rootScope,
    User
) {
    var admin = this

    // 把 API 暴露出来
    admin.api = API
    $rootScope.api = API


    admin.meta = Meta

    // 获取登录和当前管理员信息
    admin.loginInfo    = store.get('loginInfo')
    //
    admin.currentAdmin =new User(store.get('currentAdmin'))

    // 管理员头像下方快捷菜单
    admin.adminMenu = [
        {
        'text': '退出登录',
        'click': 'admin.signout()',
        'prefix': 'fa-power-off'
    }]
    // 退出登录
    admin.signout = function signOut() {
        $http.get(API + '/logoutCas')
        store.remove('loginInfo')
        store.remove('currentAdmin')
        $state.go('session.signin')
    }


    // var menus = [
    //     {"id":16,"name":"播放计划","hyperlink":"#","type":0,"position":1,"createDate":1479089830000,"permission":"w_general","oldlink":null,"icon":"icon-bar-chart"},
    //     {"id":2,"name":"机器人分组","hyperlink":"#","type":0,"position":2,"createDate":1435129690000,"permission":"w_top1","oldlink":"#","icon":"icon-graph"},
    //     {"id":1,"name":"机器人","hyperlink":"#","type":0,"position":3,"createDate":1435129664000,"permission":"w_top2","oldlink":"#","icon":"icon-users"}]

    var menus = [
        {"id":16,"name":"播放计划","hyperlink":"playplan","type":0,"position":1,"createDate":1479089830000,"permission":"playplan","oldlink":"#","icon":"icon-bar-chart"},
        {"id":2,"name":"机器人","hyperlink":"#","type":0,"position":2,"createDate":1435129690000,"permission":"w_top1","oldlink":"#","icon":"icon-graph"},
        {"id":1,"name":"用户管理","hyperlink":"#","type":0,"position":3,"createDate":1435129664000,"permission":"w_top2","oldlink":"#","icon":"icon-users"},

        {"id":5,"name":"机器人分组","hyperlink":"visit","type":2,"position":1,"createDate":1476240186000,"permission":"visit","oldlink":"#","icon":null},
        {"id":6,"name":"机器人列表","hyperlink":"tendency","type":2,"position":2,"createDate":1476240657000,"permission":"month","oldlink":"#","icon":null},

        {"id":9,"name":"用户列表","hyperlink":"userList","type":3,"position":3,"createDate":1476244106000,"permission":"userList","oldlink":"#","icon":null},
        /*{"id":10,"name":"播放列表","hyperlink":"playplan","type":3,"position":2,"createDate":1476244106000,"permission":"playplan","oldlink":"#","icon":null},*/
    ];

    admin.permissions = menus

    // 主菜单项目列表
    var _groups = _.groupBy(admin.permissions, 'type')

    admin.menus =  _.forEach(_groups[0], function(group) {
        group.items = [];
        _.forEach(_groups[group.position],function(item){
            console.info(item);
            group.items.push(item);
        })
    })
    admin.menus=_.filter(admin.menus, function(o) { return o.items.length>=1|| !_.isEqual(o.hyperlink,'#'); });

    // User.permissions().$promise.then(function(response){
    //     // admin.permissions=response
    //     admin.permissions = menus
    //
    //     // 主菜单项目列表
    //     var _groups = _.groupBy(admin.permissions, 'type')
    //
    //     admin.menus =  _.forEach(_groups[0], function(group) {
    //         group.items = [];
    //
    //         _.forEach(_groups[group.position],function(item){
    //             console.info(item);
    //             group.items.push(item);
    //             // for(var i = 0;i < admin.currentAdmin.roleList.length;i++){
    //             //     var role = admin.currentAdmin.roleList[i];
    //             //     if(role.permissions.indexOf(item.permission + ':view') != -1
    //             //         || role.permissions.indexOf(item.permission + ':edit') != -1){
    //             //         group.items.push(item);
    //             //         break;
    //             //     }
    //             // }
    //         })
    //     })
    //     admin.menus=_.filter(admin.menus, function(o) { return o.items.length>=1|| !_.isEqual(o.hyperlink,'#'); });
    // })


    // 跟踪当前处于 active 的菜单项
    admin.activeMenu = -1

    // 判断目标菜单项是否为当前激活
    admin.isActiveMenu = function isActiveMenu(index) {
        return (admin.activeMenu === index)
    }

    // 设置目标菜单项成为当前激活项
    admin.setActiveMenu = function setActiveMenu(index) {
        if (_.isUndefined(index)) {
            admin.activeMenu = -1
        } else {
            admin.activeMenu = (admin.activeMenu === index) ? -1 : index
        }
    }

}

angular.module('admin', [
    'ngAnimate',
    'ngMessages',
    'ngResource',
    'ngSanitize',
    'angular-storage',
    'ngFileUpload',
    'ui.keypress',
    'ui.router',

    'angular.patch',
    // 'ct.ui.router.extras.dsr',
    // 'ct.ui.router.extras.sticky',
    // 'ct.ui.router.extras.transition',
    // 'angular-growl',
    'mgcrea.ngStrap',
    "oc.lazyLoad",
    'ui.bootstrap',
    'ui.bootstrap.tpls',
    'ui.bootstrap.pagination',
    'ui.bootstrap.progressbar',

    //'ui.bootstrap.position',
    //'ui.bootstrap.bindHtml',
    //'ui.bootstrap.tooltip',
    'ui.select',
    //'angulartics',
    //'angulartics.piwik',

    'vn.elements',
    //'vn.chart',
    //'vn.rich-editor',

    'templates',
    'session',
    'streams',

    'ng-echarts',
    'ng-datepicker',
    'ngClipboard',

    'users',
    'demo',
    'robot',
    'playPlan'


])

    /* Configure ocLazyLoader(refer: https://github.com/ocombe/ocLazyLoad) */
//.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider) {
//    $ocLazyLoadProvider.config({
//        // global configs go here
//    });
//}])

    /* Setup global settings */
    .factory('settings', ['$rootScope', function ($rootScope) {

        // supported languages
        var settings = {
            layout: {
                pageSidebarClosed: false, // sidebar menu state
                pageContentWhite: true, // set page content layout
                pageBodySolid: false, // solid body color state
                pageAutoScrollOnLoad: 1000 // auto scroll to top on page load
            },
            assetsPath: 'assets',
            globalPath: 'assets/global',
            layoutPath: 'assets/',
        };

        $rootScope.settings = settings;
        $rootScope.queryParams = {
            startDate: undefined,
            endDate: undefined,
            version: undefined
        }
        return settings;
    }])

    /* Setup App Main Controller */
//.controller('AppMainController', ['$scope', '$rootScope', function($scope, $rootScope) {
//    //$scope.$on('$viewContentLoaded', function() {
//        //App.initComponents(); // init core components
//        //Layout.init(); //  Init entire layout(header, footer, sidebar, etc) on page load if the partials included in server side instead of loading with ng-include directive
//    //});
//}])

/***
 Layout Partials.
 By default the partials are loaded through AngularJS ng-include directive. In case they loaded in server side(e.g: PHP include function) then below partial
 initialization can be disabled and Layout.init() should be called on page load complete as explained above.
 ***/

    /* Setup Layout Part - Header */
    .controller('HeaderController', ['$scope', function ($scope) {
        $scope.$on('$includeContentLoaded', function () {
            Layout.initHeader(); // init header
        });
    }])

    /* Setup Layout Part - Sidebar */
    .controller('SidebarController', ['$scope', function ($scope) {
        $scope.$on('$includeContentLoaded', function () {
            Layout.initSidebar(); // init sidebar
        });
    }])

    /* Setup Layout Part - Footer */
    .controller('FooterController', ['$scope', function ($scope) {
        $scope.$on('$includeContentLoaded', function () {
            Layout.initFooter(); // init footer
        });
    }])
    .config(['ngClipProvider', function (ngClipProvider) {
        ngClipProvider.setPath("/fonts/ZeroClipboard.swf");
    }])
    .config(["$stateProvider", "$urlRouterProvider", function CoreRoute($stateProvider, $urlRouterProvider) {
        $stateProvider.state('admin', {
            abstract: true,
            //params: { user: null },
            templateUrl: 'admin/admin-layout.html',
            controller: 'AdminController as admin',
            resolve: {
                validAdmin: ["store", function (store) {
                    return store.get('currentAdmin')
                }]
            },

            onEnter: ["validAdmin", "$state", "store", function (validAdmin, $state, store) {

                if (_.isNull(validAdmin)) {
                    $state.go('session.signin')
                }


                return;

            }]
        })
            .state('noPage', {
                parent: 'admin',
                url: '/noPage',
                views: {
                    'main': {
                        templateUrl: 'admin/noPage.html'

                    }
                }

            })
        $urlRouterProvider.when('/', '/signin');
        $urlRouterProvider.when('', '/signin');
        $urlRouterProvider.otherwise('/signin');
    }])

// 禁用开发时的调试信息输出（TODO: 应放入构建流程自动化处理）
    .config(["$compileProvider", function DevelopmentDebugging($compileProvider) {
        $compileProvider.debugInfoEnabled(true);
    }])

// API 返回代码拦截器
    .config(ApiCodeInterceptorConfiguration)

// ngStrap 配置
    .config(ngStrapConfiguration)

// ui.bootstrap 配置
    .config(uiBootstrapConfiguration)

// ui.select 配置
    .config(uiSelectConfiguration)

// 自定义的 Aside Panel 服务
    .provider('AsidePanel', AsidePanel)
    .config(["$asideProvider", "AsidePanelProvider", function AsidePanelConfig($asideProvider, AsidePanelProvider) {
        AsidePanelProvider.defaults = angular.extend(
            $asideProvider.defaults, AsidePanelProvider.defaults
        )
    }])

// 自定义的 Confirm Modal 服务
    .provider('ConfirmModal', ConfirmModal)
    .config(["$modalProvider", "ConfirmModalProvider", function ConfirmModalConfig($modalProvider, ConfirmModalProvider) {
        ConfirmModalProvider.defaults = angular.extend(
            $modalProvider.defaults, ConfirmModalProvider.defaults
        )
    }])

// 用来处理 createDate 和 updateDate 的过滤器
    .filter('readable', ReadableFilter)

// 用来获取文件的原始版本
    .filter('replace', ReplaceFilter)

// 用来排序的服务
    .factory('Sorter', SorterService)

// 用来检查用户角色的服务
    .service('RoleChecker', RoleCheckerService)
// 增强angular对input[checkbox]对支持
    .directive(patchCheckboxDirective)

    .constant('Meta', {
        applicationName: document.querySelector('meta[name=application-name]').getAttribute('content'),
        creator: document.querySelector('meta[name=creator]').getAttribute('content'),
        publisher: document.querySelector('meta[name=publisher]').getAttribute('content')
    })

    .constant('API',
    document.querySelector('meta[name=api]').getAttribute('content'))


    .controller('AdminController', AdminController)

    .directive('ngSpinnerBar', ['$rootScope',
        function ($rootScope) {
            return {
                link: function (scope, element, attrs) {
                    // by defult hide the spinner bar
                    element.addClass('hide'); // hide spinner bar by default

                    // display the spinner bar whenever the route changes(the content part started loading)
                    $rootScope.$on('$stateChangeStart', function () {
                        element.removeClass('hide'); // show spinner bar
                    });

                    // hide the spinner bar on rounte change success(after the content loaded)
                    $rootScope.$on('$stateChangeSuccess', function () {
                        element.addClass('hide'); // hide spinner bar
                        $('body').removeClass('page-on-load'); // remove page loading indicator
                        Layout.setSidebarMenuActiveLink('match'); // activate selected link in the sidebar menu

                        // auto scorll to page top
                        //setTimeout(function () {
                        //    App.scrollTop(); // scroll to the top on content load
                        //}, $rootScope.settings.layout.pageAutoScrollOnLoad);
                    });

                    // handle errors
                    $rootScope.$on('$stateNotFound', function () {
                        element.addClass('hide'); // hide spinner bar
                    });

                    // handle errors
                    $rootScope.$on('$stateChangeError', function () {
                        element.addClass('hide'); // hide spinner bar
                    });
                }
            };
        }
    ])

// Handle global LINK click
    .directive('a', function () {
        return {
            restrict: 'E',
            link: function (scope, elem, attrs) {
                if (attrs.ngClick || attrs.href === '' || attrs.href === '#') {
                    elem.on('click', function (e) {
                        e.preventDefault(); // prevent link click for above criteria
                    });
                }
            }
        };
    })

// Handle Dropdown Hover Plugin Integration
    .directive('dropdownMenuHover', function () {
        return {
            link: function (scope, elem) {
                elem.dropdownHover();
            }
        };
    })
    .directive('onFinishRenderFilters', ["$timeout", function ($timeout) {
        return {
            restrict: 'AC',
            link: function (scope, element, attr) {
                if (scope.$last === true) {
                    $timeout(function () {
                        Layout.setSidebarMenuActiveLink('match');
                    });
                }
            }
        };
    }])
    .filter('percent', function () {
        return function (number) {

            return number + '%';
        }
    })
    .filter('cut',function(){
        return function (value,max) {
            if (!value) return '';

            // max = parseInt(max, 10);
            // if (!max) return value;
            if (value.length <= max) return value;

            value = value.substr(0, max);

            return value + '...';
        };
    })
    .filter('secFilter',function(){
        return function (value) {
            var addZero=function(i){
                if(i>=10){
                    return parseInt(i);
                }
                if(i==0){
                    return '00'
                }
                return '0'+parseInt(i)
            }
            var theTime = parseInt(value);// 秒
            var theTime1 = 0;// 分
            var theTime2 = 0;// 小时
            if(theTime > 60) {
                theTime1 = parseInt(theTime/60);
                theTime = parseInt(theTime%60);
                if(theTime1 > 60) {
                    theTime2 = parseInt(theTime1/60);
                    theTime1 = parseInt(theTime1%60);
                }
            }
            // var result = ""+parseInt(theTime)+"″";
            // if(theTime1 > 0) {
            //     result = ""+parseInt(theTime1)+"′"+result;
            // }
            // if(theTime2 > 0) {
            //     result = ""+parseInt(theTime2)+"°"+result;
            // }
            return addZero(theTime2)+":"+addZero(theTime1)+":"+addZero(theTime);
        }
    })
    .run(["$rootScope", "settings", "$state", function ($rootScope, settings, $state) {
        $rootScope.$state = $state; // state to be accessed from view
        $rootScope.$settings = settings; // state to be accessed from view
    }])
function ngStrapConfiguration(
    $asideProvider,
    $datepickerProvider,
    $timepickerProvider,
    $dropdownProvider,
    $modalProvider,
    $popoverProvider,
    $tooltipProvider,
    $typeaheadProvider
) {
    angular.extend($asideProvider.defaults, {
        animation: 'am-fade-and-slide-right',
        backdrop:  'static',
        container: 'body',
        placement: 'right',
        templateUrl:  'components/angular-strap/aside.html'
    })

    angular.extend($datepickerProvider.defaults, {
        animation:       'am-flip-x',
        autoclose:       true,
        dateFormat:      'yyyy年M月d日',
        dateType:        'string',
        iconLeft:        'fa fa-fw fa-chevron-left',
        iconRight:       'fa fa-fw fa-chevron-right',
        modelDateFormat: 'yyyy-MM-dd',
        startWeek:       1
    })

    angular.extend($timepickerProvider.defaults, {
        animation:       'am-flip-x',
        autoclose:       true,
        timeFormat:      'HH:mm',
        timeType:        'string',
        iconUp:        'fa fa-fw fa-chevron-up',
        iconDown:       'fa fa-fw fa-chevron-down',
        modelTimeFormat: 'HH:mm:ss'
    })

    angular.extend($dropdownProvider.defaults, {
        animation: 'am-fade-and-slide-top',
        container: 'body',
        placement: 'bottom',
        templateUrl:  'components/angular-strap/dropdown.html'
    })

    angular.extend($modalProvider.defaults, {
        animation: 'am-flip-x',
        container: 'body',
        templateUrl:  'components/angular-strap/modal.html'
    })

    angular.extend($popoverProvider.defaults, {
        animation: 'am-fade-and-slide-top',
        autoClose: true,
        delay:     { show: 200, hide: 200 },
        placement: 'left'
    })

    angular.extend($tooltipProvider.defaults, {
        delay:     { show: 1000, hide: 100 },
        placement: 'left'
    })

    angular.extend($typeaheadProvider.defaults, {
        animation: 'am-fade-and-slide-bottom',
        limit:     50,
        minLength: 0
    });
}


/**
 Created by Dio on 17-9.
 http://inhu.net
 */

(function() {
    "use strict";
    (function() {
        var NGUeditor;
        NGUeditor = angular.module("ng.ueditor", []);
        NGUeditor.directive("ueditor", [
            function() {
                return {
                    restrict: "C",
                    require: "ngModel",
                    scope: {
                        config: "=",
                        ready: "="
                    },
                    link: function($S, element, attr, ctrl) {
                        var _NGUeditor, _updateByRender;
                        _updateByRender = false;
                        _NGUeditor = (function() {
                            function _NGUeditor() {
                                this.bindRender();
                                this.initEditor();
                                return;
                            }


                            /**
                             * ��ʼ���༭��
                             * @return {[type]} [description]
                             */

                            _NGUeditor.prototype.initEditor = function() {
                                var _UEConfig, _editorId, _self;
                                _self = this;
                                if (typeof UE === 'undefined') {
                                    console.error("Please import the local resources of ueditor!");
                                    return;
                                }
                                _UEConfig = $S.config ? $S.config : {};
                                _editorId = attr.id ? attr.id : "_editor" + (Date.now());
                                element[0].id = _editorId;
                                this.editor = new UE.ui.Editor(_UEConfig);
                                this.editor.render(_editorId);
                                return this.editor.ready(function() {
                                    _self.editorReady = true;
                                    _self.editor.addListener("contentChange", function() {
                                        ctrl.$setViewValue(_self.editor.getContent());
                                        if (!_updateByRender) {
                                            if (!$S.$$phase) {
                                                $S.$apply();
                                            }
                                        }
                                        _updateByRender = false;
                                    });
                                    if (_self.modelContent && _self.modelContent.length > 0) {
                                        _self.setEditorContent();
                                    }
                                    if (typeof $S.ready === "function") {
                                        $S.ready(_self.editor);
                                    }
                                    $S.$on("$destroy", function() {
                                        if (!attr.id && UE.delEditor) {
                                            UE.delEditor(_editorId);
                                        }
                                    });
                                });
                            };

                            _NGUeditor.prototype.setEditorContent = function(content) {
                                if (content == null) {
                                    content = this.modelContent;
                                }
                                if (this.editor && this.editorReady) {
                                    this.editor.setContent(content);
                                }
                            };

                            _NGUeditor.prototype.bindRender = function() {
                                var _self;
                                _self = this;
                                ctrl.$render = function() {
                                    _self.modelContent = (ctrl.$isEmpty(ctrl.$viewValue) ? "" : ctrl.$viewValue);
                                    _updateByRender = true;
                                    _self.setEditorContent();
                                };
                            };

                            return _NGUeditor;

                        })();
                        new _NGUeditor();
                    }
                };
            }
        ]);
    })();

}).call(this);

//# sourceMappingURL=angular-ueditor.js.map

function patchCheckboxDirective() {
    return {
        priority: 1000,
        restrict: 'E',
        require: '?ngModel',
        link: function (scope, element, attr, ctrl) {
            if (attr.type === 'checkbox' && ctrl && attr.value) {
                ctrl.$parsers = [];
                ctrl.$parsers.push(parserFn);

                ctrl.$formatters = [];
                ctrl.$formatters.push(formatterFn);
            }

            function formatterFn(val) {
                if (angular.isString(val)) {
                    return val === attr.value;
                } else if (angular.isArray(val)) {
                    for (var i = 0; i < val.length; i++) {
                        if (val[i] === attr.value) {
                            return true;
                        }
                    }
                    return false;
                }
            }

            function parserFn(val) {
                if (angular.isString(ctrl.$modelValue)) {
                    if (ctrl.$modelValue === '') {
                        return val ? attr.value : '';
                    }
                    return val ?
                        (attr.value !== ctrl.$modelValue ? [ctrl.$modelValue, attr.value] : ctrl.$modelValue) :
                        (attr.value === ctrl.$modelValue ? '' : ctrl.$modelValue);
                } else if (angular.isArray(ctrl.$modelValue)) {
                    var $$modelValue = ctrl.$modelValue.slice(0);

                    if ($$modelValue.length === 0) {
                        if (val) {
                            $$modelValue.push(attr.value);
                        }
                        return $$modelValue;
                    }

                    var existsBool = false;
                    for (var i = 0; i < $$modelValue.length; i++) {
                        if ($$modelValue[i] === attr.value) {
                            if (val) {
                                existsBool = true;
                                break;
                            } else {
                                $$modelValue.splice(i, 1);
                            }
                        }
                    }

                    if (val && !existsBool) {
                        $$modelValue.push(attr.value);
                    }

                    return $$modelValue;
                }
                return val;
            }
        }
    };
}


function ApiCodeInterceptorConfiguration($httpProvider) {
    ApiCodeInterceptor.$inject = ["$window", "$injector", "$q"];
    function ApiCodeInterceptor($window, $injector, $q) {
        return {
            'response': function ApiCodeResponseInterceptor(response) {
                if (response.data.code) {
                    response.data.code = $window.parseInt(response.data.code)

                    if (response.data.code === 11111 || response.data.code === 10011) {
                        $injector.get('$state').go('session.signin')
                    }

                    if (response.data.code !== 10000) {
                        return $q.reject({
                            code:       response.data.code,
                            type:       'error',
                            classNames: ['alert', 'alert-danger'],
                            message:    response.data.msg
                        })
                    }
                }

                return response
            }
        }
    }
    //$httpProvider.defaults.headers.post = {"my-header":"value"}
    $httpProvider.interceptors.push(ApiCodeInterceptor)
}

function AsidePanel() {
    this.defaults = { html: true }

    this.$get = ["$q", "$aside", function($q, $aside) {
        return {
            open: function _showAsidePanel(parentScope, options,vm) {

                var _scope = parentScope.$new();
                if(vm.isOpen){
                    return
                }
                vm.isOpen=true
                _scope.asideModel = {}

                var _options = angular.extend(_.clone(this.defaults), options)
                _options.scope = _scope

                var _aside = $aside(_options)

                var deferred = $q.defer()

                return $q(function(resolve, reject) {
                    _scope.asideModel.confirm = function(data, immediateHide) {
                        vm.isOpen=false
                        if (immediateHide) {
                            _aside.hide()
                            resolve({data: data})
                        } else resolve({data: data, aside: _aside})
                    }

                    _scope.asideModel.cancel = function(reason, immediateHide) {
                        vm.isOpen=false
                        if (immediateHide) {
                            _aside.hide()
                            reject({reason: reason})
                        } else reject({reason: reason, aside: _aside})
                    }
                })
            }.bind(this)
        }
    }]
}

function ConfirmModal() {
    this.defaults = {
        html: true,
        templateUrl: 'components/angular-strap/confirm.html',
        contentTemplate: 'components/angular-strap/confirm-modal.html'
    }

    this.$get = ["$q", "$modal", function($q, $modal) {
        return {
            open: function _openConfirmModal(parentScope, options) {
                var _scope = parentScope.$new()
                _scope.modalModel = {}

                var _options = angular.extend(_.clone(this.defaults), options)
                _options.scope = _scope

                var _modal = $modal(_options)

                return $q(function(resolve, reject) {
                    _scope.modalModel.confirm = function(data, immediateHide) {
                        if (immediateHide) {
                            _modal.hide()
                            resolve({data: data})
                        } else resolve({data: data, modal: _modal})
                    }

                    _scope.modalModel.cancel = function(reason, immediateHide) {
                        if (immediateHide) {
                            _modal.hide()
                            reject({reason: reason})
                        } else reject({reason: reason, modal: _modal})
                    }
                })
            }.bind(this)
        }
    }]
}

/**
 * Created by yuanlian on 2016/10/27.
 */
angular.module('ng-customindex', [])
    .directive('customIndex', [function () {
        return {
            restrict: 'EC',
            require: '?ngModel',
            scope: {
                selection: '=selection',
                content: '=content',
                limit: '=limit',
                width:'=width',
                default:'=default'
            },
            replace: true,
            link: function (scope, element, timeout) {

                scope.targetShow = false
                // scope.groups = _.groupBy(scope.content, 'category')
                scope.temp=_.clone(scope.selection)
                scope.openTarget = function () {
                    scope.targetShow = !scope.targetShow
                }
                scope.toggleSelection = function (item) {
                    var idx = scope.temp.indexOf(item.id);

                    if (idx > -1) {
                        if (scope.temp.length == 1) {
                            return
                        }
                        scope.temp.splice(idx, 1);
                    }
                    else {
                        scope.temp.push(item.id);
                        if (scope.temp.length > scope.limit) {

                            scope.temp.splice(0, 1);
                            return
                        }


                    }
                }
               scope.ok=function(){
                   scope.selection=_.clone(scope.temp)

                   scope.width={'width': (100/scope.selection.length-2)+'%'}
                   scope.targetShow = false
               }
               scope.restore=function(){
                   scope.selection=_.clone(scope.default)
                   scope.width={'width': (100/scope.selection.length-2)+'%'}
                   scope.targetShow = false
               }
                scope.blur = function () {
                    console.info('sdd')
                    scope.targetShow = false
                }


            },
            template: // '<div  style="outline: none"><div class="button-target" ng-click="openTarget()">' +
            ' <div class="target-group" ng-blur="blur()" tabindex=1 style="outline: none">' +
            '<div class="button-index" ng-click="openTarget()">' +
            '<i class="fa fa-signal"></i>&nbsp;自定义指标' +
            '</div>' +
            '<div class="index-open" ng-if="targetShow"> ' +
            '   <div class="target-tip"><span>提示：可同时选择</span><span style="color:red" ng-bind="limit"' +
            ' ></span><span>项</span> <span class="restore" ng-click="restore()" > 系统默认指标</span></div>' +
            ' <li class="index-li" ng-repeat="ii in content">' +
            '<div class="col-md-2">' +
            ' <span> {{ii.category}}</span>' +
            '</div>' +

            '<div class="col-md-10" style="margin-left:-8%">' +
            ' <div class="index-category ">' +
            '<ul class="col-md-3"  ng-repeat="item in ii.list" ng-click="toggleSelection(item)">' +
            ' <i class="fa fa-check-square-o" ng-if="temp.indexOf(item.id) > -1"></i>' +
            '   <i  class="fa fa-square-o" ng-if="temp.indexOf(item.id) <= -1"></i>{{::item.name}}' +
            '  </ul>' +
            '</div>' +
            '</div>' +

            '<div class=" col-md-12 target-hh"></div>' +

            '</li>' +

            '<div class="index-ok1" ng-click="ok()">确定</div>' +
            '</div>' +
            '</div>'
        };
    }]);

/**
* @version: 2.1.19
* @author: Dan Grossman http://www.dangrossman.info/
* @copyright: Copyright (c) 2012-2015 Dan Grossman. All rights reserved.
* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
* @website: https://www.improvely.com/
*/

(function(root, factory) {
  if (typeof define === 'function' && define.amd) {
    define(['moment', 'jquery', 'exports'], function(momentjs, $, exports) {
      root.daterangepicker = factory(root, exports, momentjs, $);
    });

  } else if (typeof exports !== 'undefined') {
      var momentjs = require('moment');
      var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;  //isomorphic issue
      if (!jQuery) {
          try {
              jQuery = require('jquery');
              if (!jQuery.fn) jQuery.fn = {}; //isomorphic issue
          } catch (err) {
              if (!jQuery) throw new Error('jQuery dependency not found');
          }
      }

    factory(root, exports, momentjs, jQuery);

  // Finally, as a browser global.
  } else {
    root.daterangepicker = factory(root, {}, root.moment || moment, (root.jQuery || root.Zepto || root.ender || root.$));
  }

}(this || {}, function(root, daterangepicker, moment, $) { // 'this' doesn't exist on a server

    var DateRangePicker = function(element, options, cb) {

        //default settings for options
        this.parentEl = 'body';
        this.element = $(element);
        this.startDate = moment().startOf('day');
        this.endDate = moment().endOf('day');
        this.minDate = false;
        this.maxDate = false;
        this.dateLimit = false;
        this.autoApply = false;
        this.singleDatePicker = false;
        this.showDropdowns = false;
        this.showWeekNumbers = false;
        this.showISOWeekNumbers = false;
        this.timePicker = false;
        this.timePicker24Hour = false;
        this.timePickerIncrement = 1;
        this.timePickerSeconds = false;
        this.linkedCalendars = true;
        this.autoUpdateInput = true;
        this.alwaysShowCalendars = false;
        this.ranges = {};

        this.opens = 'right';
        if (this.element.hasClass('pull-right'))
            this.opens = 'left';

        this.drops = 'down';
        if (this.element.hasClass('dropup'))
            this.drops = 'up';

        this.buttonClasses = 'btn btn-sm';
        this.applyClass = 'btn-success';
        this.cancelClass = 'btn-default';

        this.locale = {
            format: 'YYYY-MM-DD',
            separator: '~',
            applyLabel: '确定',
            cancelLabel: '取消',
            weekLabel: 'W',
            customRangeLabel: '自定义',
            daysOfWeek: moment.weekdaysMin(),
            monthNames: moment.monthsShort(),
            firstDay: moment.localeData().firstDayOfWeek()
        };

        this.callback = function() { };

        //some state information
        this.isShowing = false;
        this.leftCalendar = {};
        this.rightCalendar = {};

        //custom options from user
        if (typeof options !== 'object' || options === null)
            options = {};

        //allow setting options with data attributes
        //data-api options will be overwritten with custom javascript options
        options = $.extend(this.element.data(), options);

        //html template for the picker UI
        if (typeof options.template !== 'string' && !(options.template instanceof $))
            options.template = '<div class="daterangepicker dropdown-menu">' +
                '<div class="calendar left">' +
                    '<div class="daterangepicker_input">' +
                      '<input class="input-mini" type="text" name="daterangepicker_start" value="" />' +
                      '<i class="fa fa-calendar"></i>' +
                      '<div class="calendar-time">' +
                        '<div></div>' +
                        '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' +
                      '</div>' +
                    '</div>' +
                    '<div class="calendar-table"></div>' +
                '</div>' +
                '<div class="calendar right">' +
                    '<div class="daterangepicker_input">' +
                      '<input class="input-mini" type="text" name="daterangepicker_end" value="" />' +
                      '<i class="fa fa-calendar"></i>' +
                      '<div class="calendar-time">' +
                        '<div></div>' +
                        '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' +
                      '</div>' +
                    '</div>' +
                    '<div class="calendar-table"></div>' +
                '</div>' +
                '<div class="ranges">' +
                    '<div class="range_inputs">' +
                        '<button class="applyBtn" disabled="disabled" type="button"></button> ' +
                        '<button class="cancelBtn" type="button"></button>' +
                    '</div>' +
                '</div>' +
            '</div>';

        this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);
        this.container = $(options.template).appendTo(this.parentEl);

        //
        // handle all the possible options overriding defaults
        //

        if (typeof options.locale === 'object') {

            if (typeof options.locale.format === 'string')
                this.locale.format = options.locale.format;

            if (typeof options.locale.separator === 'string')
                this.locale.separator = options.locale.separator;

            if (typeof options.locale.daysOfWeek === 'object')
                this.locale.daysOfWeek = options.locale.daysOfWeek.slice();

            if (typeof options.locale.monthNames === 'object')
              this.locale.monthNames = options.locale.monthNames.slice();

            if (typeof options.locale.firstDay === 'number')
              this.locale.firstDay = options.locale.firstDay;

            if (typeof options.locale.applyLabel === 'string')
              this.locale.applyLabel = options.locale.applyLabel;

            if (typeof options.locale.cancelLabel === 'string')
              this.locale.cancelLabel = options.locale.cancelLabel;

            if (typeof options.locale.weekLabel === 'string')
              this.locale.weekLabel = options.locale.weekLabel;

            if (typeof options.locale.customRangeLabel === 'string')
              this.locale.customRangeLabel = options.locale.customRangeLabel;

        }

        if (typeof options.startDate === 'string')
            this.startDate = moment(options.startDate, this.locale.format);

        if (typeof options.endDate === 'string')
            this.endDate = moment(options.endDate, this.locale.format);

        if (typeof options.minDate === 'string')
            this.minDate = moment(options.minDate, this.locale.format);

        if (typeof options.maxDate === 'string')
            this.maxDate = moment(options.maxDate, this.locale.format);

        if (typeof options.startDate === 'object')
            this.startDate = moment(options.startDate);

        if (typeof options.endDate === 'object')
            this.endDate = moment(options.endDate);

        if (typeof options.minDate === 'object')
            this.minDate = moment(options.minDate);

        if (typeof options.maxDate === 'object')
            this.maxDate = moment(options.maxDate);

        // sanity check for bad options
        if (this.minDate && this.startDate.isBefore(this.minDate))
            this.startDate = this.minDate.clone();

        // sanity check for bad options
        if (this.maxDate && this.endDate.isAfter(this.maxDate))
            this.endDate = this.maxDate.clone();

        if (typeof options.applyClass === 'string')
            this.applyClass = options.applyClass;

        if (typeof options.cancelClass === 'string')
            this.cancelClass = options.cancelClass;

        if (typeof options.dateLimit === 'object')
            this.dateLimit = options.dateLimit;

        if (typeof options.opens === 'string')
            this.opens = options.opens;

        if (typeof options.drops === 'string')
            this.drops = options.drops;

        if (typeof options.showWeekNumbers === 'boolean')
            this.showWeekNumbers = options.showWeekNumbers;

        if (typeof options.showISOWeekNumbers === 'boolean')
            this.showISOWeekNumbers = options.showISOWeekNumbers;

        if (typeof options.buttonClasses === 'string')
            this.buttonClasses = options.buttonClasses;

        if (typeof options.buttonClasses === 'object')
            this.buttonClasses = options.buttonClasses.join(' ');

        if (typeof options.showDropdowns === 'boolean')
            this.showDropdowns = options.showDropdowns;

        if (typeof options.singleDatePicker === 'boolean') {
            this.singleDatePicker = options.singleDatePicker;
            if (this.singleDatePicker)
                this.endDate = this.startDate.clone();
        }

        if (typeof options.timePicker === 'boolean')
            this.timePicker = options.timePicker;

        if (typeof options.timePickerSeconds === 'boolean')
            this.timePickerSeconds = options.timePickerSeconds;

        if (typeof options.timePickerIncrement === 'number')
            this.timePickerIncrement = options.timePickerIncrement;

        if (typeof options.timePicker24Hour === 'boolean')
            this.timePicker24Hour = options.timePicker24Hour;

        if (typeof options.autoApply === 'boolean')
            this.autoApply = options.autoApply;

        if (typeof options.autoUpdateInput === 'boolean')
            this.autoUpdateInput = options.autoUpdateInput;

        if (typeof options.linkedCalendars === 'boolean')
            this.linkedCalendars = options.linkedCalendars;

        if (typeof options.isInvalidDate === 'function')
            this.isInvalidDate = options.isInvalidDate;

        if (typeof options.alwaysShowCalendars === 'boolean')
            this.alwaysShowCalendars = options.alwaysShowCalendars;

        // update day names order to firstDay
        if (this.locale.firstDay != 0) {
            var iterator = this.locale.firstDay;
            while (iterator > 0) {
                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());
                iterator--;
            }
        }

        var start, end, range;

        //if no start/end dates set, check if an input element contains initial values
        if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {
            if ($(this.element).is('input[type=text]')) {
                var val = $(this.element).val(),
                    split = val.split(this.locale.separator);

                start = end = null;

                if (split.length == 2) {
                    start = moment(split[0], this.locale.format);
                    end = moment(split[1], this.locale.format);
                } else if (this.singleDatePicker && val !== "") {
                    start = moment(val, this.locale.format);
                    end = moment(val, this.locale.format);
                }
                if (start !== null && end !== null) {
                    this.setStartDate(start);
                    this.setEndDate(end);
                }
            }
        }

        if (typeof options.ranges === 'object') {
            for (range in options.ranges) {

                if (typeof options.ranges[range][0] === 'string')
                    start = moment(options.ranges[range][0], this.locale.format);
                else
                    start = moment(options.ranges[range][0]);

                if (typeof options.ranges[range][1] === 'string')
                    end = moment(options.ranges[range][1], this.locale.format);
                else
                    end = moment(options.ranges[range][1]);

                // If the start or end date exceed those allowed by the minDate or dateLimit
                // options, shorten the range to the allowable period.
                if (this.minDate && start.isBefore(this.minDate))
                    start = this.minDate.clone();

                var maxDate = this.maxDate;
                if (this.dateLimit && start.clone().add(this.dateLimit).isAfter(maxDate))
                    maxDate = start.clone().add(this.dateLimit);
                if (maxDate && end.isAfter(maxDate))
                    end = maxDate.clone();

                // If the end of the range is before the minimum or the start of the range is
                // after the maximum, don't display this range option at all.
                if ((this.minDate && end.isBefore(this.minDate)) || (maxDate && start.isAfter(maxDate)))
                    continue;
                
                //Support unicode chars in the range names.
                var elem = document.createElement('textarea');
                elem.innerHTML = range;
                var rangeHtml = elem.value;

                this.ranges[rangeHtml] = [start, end];
            }

            var list = '<ul>';
            for (range in this.ranges) {
                list += '<li>' + range + '</li>';
            }
            list += '<li>' + this.locale.customRangeLabel + '</li>';
            list += '</ul>';
            this.container.find('.ranges').prepend(list);
        }

        if (typeof cb === 'function') {
            this.callback = cb;
        }

        if (!this.timePicker) {
            this.startDate = this.startDate.startOf('day');
            this.endDate = this.endDate.endOf('day');
            this.container.find('.calendar-time').hide();
        }

        //can't be used together for now
        if (this.timePicker && this.autoApply)
            this.autoApply = false;

        if (this.autoApply && typeof options.ranges !== 'object') {
            this.container.find('.ranges').hide();
        } else if (this.autoApply) {
            this.container.find('.applyBtn, .cancelBtn').addClass('hide');
        }

        if (this.singleDatePicker) {
            this.container.addClass('single');
            this.container.find('.calendar.left').addClass('single');
            this.container.find('.calendar.left').show();
            this.container.find('.calendar.right').hide();
            this.container.find('.daterangepicker_input input, .daterangepicker_input i').hide();
            if (!this.timePicker) {
                this.container.find('.ranges').hide();
            }
        }

        if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {
            this.container.addClass('show-calendar');
        }

        this.container.addClass('opens' + this.opens);

        //swap the position of the predefined ranges if opens right

        if (typeof options.ranges !== 'undefined' && this.opens == 'right') {
            var ranges = this.container.find('.ranges');
            var html = ranges.clone();
            ranges.remove();
            this.container.find('.calendar.left').parent().prepend(html);
        }

        //apply CSS classes and labels to buttons
        this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);
        if (this.applyClass.length)
            this.container.find('.applyBtn').addClass(this.applyClass);
        if (this.cancelClass.length)
            this.container.find('.cancelBtn').addClass(this.cancelClass);
        this.container.find('.applyBtn').html(this.locale.applyLabel);
        this.container.find('.cancelBtn').html(this.locale.cancelLabel);

        //
        // event listeners
        //

        this.container.find('.calendar')
            .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))
            .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))
            .on('click.daterangepicker', 'td.available', $.proxy(this.clickDate, this))
            .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))
            .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this))
            .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))
            .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))
            .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this))
            .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this))
            //.on('keyup.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this))
            .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this));

        this.container.find('.ranges')
            .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))
            .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this))
            .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this))
            .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this))
            .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this));

        if (this.element.is('input')) {
            this.element.on({
                'click.daterangepicker': $.proxy(this.show, this),
                'focus.daterangepicker': $.proxy(this.show, this),
                'keyup.daterangepicker': $.proxy(this.elementChanged, this),
                'keydown.daterangepicker': $.proxy(this.keydown, this)
            });
        } else {
            this.element.on('click.daterangepicker', $.proxy(this.toggle, this));
        }

        //
        // if attached to a text input, set the initial value
        //

        if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {
            this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
            this.element.trigger('change');
        } else if (this.element.is('input') && this.autoUpdateInput) {
            this.element.val(this.startDate.format(this.locale.format));
            this.element.trigger('change');
        }

    };

    DateRangePicker.prototype = {

        constructor: DateRangePicker,

        setStartDate: function(startDate) {
            if (typeof startDate === 'string')
                this.startDate = moment(startDate, this.locale.format);

            if (typeof startDate === 'object')
                this.startDate = moment(startDate);

            if (!this.timePicker)
                this.startDate = this.startDate.startOf('day');

            if (this.timePicker && this.timePickerIncrement)
                this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);

            if (this.minDate && this.startDate.isBefore(this.minDate))
                this.startDate = this.minDate;

            if (this.maxDate && this.startDate.isAfter(this.maxDate))
                this.startDate = this.maxDate;

            if (!this.isShowing)
                this.updateElement();

            this.updateMonthsInView();
        },

        setEndDate: function(endDate) {
            if (typeof endDate === 'string')
                this.endDate = moment(endDate, this.locale.format);

            if (typeof endDate === 'object')
                this.endDate = moment(endDate);

            if (!this.timePicker)
                this.endDate = this.endDate.endOf('day');

            if (this.timePicker && this.timePickerIncrement)
                this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);

            if (this.endDate.isBefore(this.startDate))
                this.endDate = this.startDate.clone();

            if (this.maxDate && this.endDate.isAfter(this.maxDate))
                this.endDate = this.maxDate;

            if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate))
                this.endDate = this.startDate.clone().add(this.dateLimit);

            this.previousRightTime = this.endDate.clone();

            if (!this.isShowing)
                this.updateElement();

            this.updateMonthsInView();
        },

        isInvalidDate: function() {
            return false;
        },

        updateView: function() {
            if (this.timePicker) {
                this.renderTimePicker('left');
                this.renderTimePicker('right');
                if (!this.endDate) {
                    this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');
                } else {
                    this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');
                }
            }
            if (this.endDate) {
                this.container.find('input[name="daterangepicker_end"]').removeClass('active');
                this.container.find('input[name="daterangepicker_start"]').addClass('active');
            } else {
                this.container.find('input[name="daterangepicker_end"]').addClass('active');
                this.container.find('input[name="daterangepicker_start"]').removeClass('active');
            }
            this.updateMonthsInView();
            this.updateCalendars();
            this.updateFormInputs();
        },

        updateMonthsInView: function() {
            if (this.endDate) {

                //if both dates are visible already, do nothing
                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&
                    (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
                    &&
                    (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
                    ) {
                    return;
                }

                this.leftCalendar.month = this.startDate.clone().date(2);
                if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {
                    this.rightCalendar.month = this.endDate.clone().date(2);
                } else {
                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
                }
                
            } else {
                if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {
                    this.leftCalendar.month = this.startDate.clone().date(2);
                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
                }
            }
        },

        updateCalendars: function() {

            if (this.timePicker) {
                var hour, minute, second;
                if (this.endDate) {
                    hour = parseInt(this.container.find('.left .hourselect').val(), 10);
                    minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
                    second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
                    if (!this.timePicker24Hour) {
                        var ampm = this.container.find('.left .ampmselect').val();
                        if (ampm === 'PM' && hour < 12)
                            hour += 12;
                        if (ampm === 'AM' && hour === 12)
                            hour = 0;
                    }
                } else {
                    hour = parseInt(this.container.find('.right .hourselect').val(), 10);
                    minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
                    second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
                    if (!this.timePicker24Hour) {
                        var ampm = this.container.find('.right .ampmselect').val();
                        if (ampm === 'PM' && hour < 12)
                            hour += 12;
                        if (ampm === 'AM' && hour === 12)
                            hour = 0;
                    }
                }
                this.leftCalendar.month.hour(hour).minute(minute).second(second);
                this.rightCalendar.month.hour(hour).minute(minute).second(second);
            }

            this.renderCalendar('left');
            this.renderCalendar('right');

            //highlight any predefined range matching the current start and end dates
            this.container.find('.ranges li').removeClass('active');
            if (this.endDate == null) return;

            this.calculateChosenLabel();
        },

        renderCalendar: function(side) {

            //
            // Build the matrix of dates that will populate the calendar
            //

            var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;
            var month = calendar.month.month();
            var year = calendar.month.year();
            var hour = calendar.month.hour();
            var minute = calendar.month.minute();
            var second = calendar.month.second();
            var daysInMonth = moment([year, month]).daysInMonth();
            var firstDay = moment([year, month, 1]);
            var lastDay = moment([year, month, daysInMonth]);
            var lastMonth = moment(firstDay).subtract(1, 'month').month();
            var lastYear = moment(firstDay).subtract(1, 'month').year();
            var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();
            var dayOfWeek = firstDay.day();

            //initialize a 6 rows x 7 columns array for the calendar
            var calendar = [];
            calendar.firstDay = firstDay;
            calendar.lastDay = lastDay;

            for (var i = 0; i < 6; i++) {
                calendar[i] = [];
            }

            //populate the calendar with date objects
            var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;
            if (startDay > daysInLastMonth)
                startDay -= 7;

            if (dayOfWeek == this.locale.firstDay)
                startDay = daysInLastMonth - 6;

            var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);

            var col, row;
            for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {
                if (i > 0 && col % 7 === 0) {
                    col = 0;
                    row++;
                }
                calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);
                curDate.hour(12);

                if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {
                    calendar[row][col] = this.minDate.clone();
                }

                if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {
                    calendar[row][col] = this.maxDate.clone();
                }

            }

            //make the calendar object available to hoverDate/clickDate
            if (side == 'left') {
                this.leftCalendar.calendar = calendar;
            } else {
                this.rightCalendar.calendar = calendar;
            }

            //
            // Display the calendar
            //

            var minDate = side == 'left' ? this.minDate : this.startDate;
            var maxDate = this.maxDate;
            var selected = side == 'left' ? this.startDate : this.endDate;

            var html = '<table class="table-condensed">';
            html += '<thead>';
            html += '<tr>';

            // add empty cell for week number
            if (this.showWeekNumbers || this.showISOWeekNumbers)
                html += '<th></th>';

            if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {
                html += '<th class="prev available"><i class="fa fa-chevron-left"></i></th>';
            } else {
                html += '<th></th>';
            }

            var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY");

            if (this.showDropdowns) {
                var currentMonth = calendar[1][1].month();
                var currentYear = calendar[1][1].year();
                var maxYear = (maxDate && maxDate.year()) || (currentYear + 5);
                var minYear = (minDate && minDate.year()) || (currentYear - 50);
                var inMinYear = currentYear == minYear;
                var inMaxYear = currentYear == maxYear;

                var monthHtml = '<select class="monthselect">';
                for (var m = 0; m < 12; m++) {
                    if ((!inMinYear || m >= minDate.month()) && (!inMaxYear || m <= maxDate.month())) {
                        monthHtml += "<option value='" + m + "'" +
                            (m === currentMonth ? " selected='selected'" : "") +
                            ">" + this.locale.monthNames[m] + "</option>";
                    } else {
                        monthHtml += "<option value='" + m + "'" +
                            (m === currentMonth ? " selected='selected'" : "") +
                            " disabled='disabled'>" + this.locale.monthNames[m] + "</option>";
                    }
                }
                monthHtml += "</select>";

                var yearHtml = '<select class="yearselect">';
                for (var y = minYear; y <= maxYear; y++) {
                    yearHtml += '<option value="' + y + '"' +
                        (y === currentYear ? ' selected="selected"' : '') +
                        '>' + y + '</option>';
                }
                yearHtml += '</select>';

                dateHtml = monthHtml + yearHtml;
            }

            html += '<th colspan="5" class="month">' + dateHtml + '</th>';
            if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {
                html += '<th class="next available"><i class="fa fa-chevron-right "></i></th>';
            } else {
                html += '<th></th>';
            }

            html += '</tr>';
            html += '<tr>';

            // add week number label
            if (this.showWeekNumbers || this.showISOWeekNumbers)
                html += '<th class="week">' + this.locale.weekLabel + '</th>';

            $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {
                html += '<th>' + dayOfWeek + '</th>';
            });

            html += '</tr>';
            html += '</thead>';
            html += '<tbody>';

            //adjust maxDate to reflect the dateLimit setting in order to
            //grey out end dates beyond the dateLimit
            if (this.endDate == null && this.dateLimit) {
                var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');
                if (!maxDate || maxLimit.isBefore(maxDate)) {
                    maxDate = maxLimit;
                }
            }

            for (var row = 0; row < 6; row++) {
                html += '<tr>';

                // add week number
                if (this.showWeekNumbers)
                    html += '<td class="week">' + calendar[row][0].week() + '</td>';
                else if (this.showISOWeekNumbers)
                    html += '<td class="week">' + calendar[row][0].isoWeek() + '</td>';

                for (var col = 0; col < 7; col++) {

                    var classes = [];

                    //highlight today's date
                    if (calendar[row][col].isSame(new Date(), "day"))
                        classes.push('today');

                    //highlight weekends
                    if (calendar[row][col].isoWeekday() > 5)
                        classes.push('weekend');

                    //grey out the dates in other months displayed at beginning and end of this calendar
                    if (calendar[row][col].month() != calendar[1][1].month())
                        classes.push('off');

                    //don't allow selection of dates before the minimum date
                    if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))
                        classes.push('off', 'disabled');

                    //don't allow selection of dates after the maximum date
                    if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))
                        classes.push('off', 'disabled');

                    //don't allow selection of date if a custom function decides it's invalid
                    if (this.isInvalidDate(calendar[row][col]))
                        classes.push('off', 'disabled');

                    //highlight the currently selected start date
                    if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))
                        classes.push('active', 'start-date');

                    //highlight the currently selected end date
                    if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))
                        classes.push('active', 'end-date');

                    //highlight dates in-between the selected dates
                    if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)
                        classes.push('in-range');

                    var cname = '', disabled = false;
                    for (var i = 0; i < classes.length; i++) {
                        cname += classes[i] + ' ';
                        if (classes[i] == 'disabled')
                            disabled = true;
                    }
                    if (!disabled)
                        cname += 'available';

                    html += '<td class="' + cname.replace(/^\s+|\s+$/g, '') + '" data-title="' + 'r' + row + 'c' + col + '">' + calendar[row][col].date() + '</td>';

                }
                html += '</tr>';
            }

            html += '</tbody>';
            html += '</table>';

            this.container.find('.calendar.' + side + ' .calendar-table').html(html);

        },

        renderTimePicker: function(side) {

            var html, selected, minDate, maxDate = this.maxDate;

            if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate)))
                maxDate = this.startDate.clone().add(this.dateLimit);

            if (side == 'left') {
                selected = this.startDate.clone();
                minDate = this.minDate;
            } else if (side == 'right') {
                selected = this.endDate ? this.endDate.clone() : this.previousRightTime.clone();
                minDate = this.startDate;

                //Preserve the time already selected
                var timeSelector = this.container.find('.calendar.right .calendar-time div');
                if (timeSelector.html() != '') {

                    selected.hour(timeSelector.find('.hourselect option:selected').val() || selected.hour());
                    selected.minute(timeSelector.find('.minuteselect option:selected').val() || selected.minute());
                    selected.second(timeSelector.find('.secondselect option:selected').val() || selected.second());

                    if (!this.timePicker24Hour) {
                        var ampm = timeSelector.find('.ampmselect option:selected').val();
                        if (ampm === 'PM' && selected.hour() < 12)
                            selected.hour(selected.hour() + 12);
                        if (ampm === 'AM' && selected.hour() === 12)
                            selected.hour(0);
                    }

                    if (selected.isBefore(this.startDate))
                        selected = this.startDate.clone();

                    if (maxDate && selected.isAfter(maxDate))
                        selected = maxDate.clone();

                }
            }

            //
            // hours
            //

            html = '<select class="hourselect">';

            var start = this.timePicker24Hour ? 0 : 1;
            var end = this.timePicker24Hour ? 23 : 12;

            for (var i = start; i <= end; i++) {
                var i_in_24 = i;
                if (!this.timePicker24Hour)
                    i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);

                var time = selected.clone().hour(i_in_24);
                var disabled = false;
                if (minDate && time.minute(59).isBefore(minDate))
                    disabled = true;
                if (maxDate && time.minute(0).isAfter(maxDate))
                    disabled = true;

                if (i_in_24 == selected.hour() && !disabled) {
                    html += '<option value="' + i + '" selected="selected">' + i + '</option>';
                } else if (disabled) {
                    html += '<option value="' + i + '" disabled="disabled" class="disabled">' + i + '</option>';
                } else {
                    html += '<option value="' + i + '">' + i + '</option>';
                }
            }

            html += '</select> ';

            //
            // minutes
            //

            html += ': <select class="minuteselect">';

            for (var i = 0; i < 60; i += this.timePickerIncrement) {
                var padded = i < 10 ? '0' + i : i;
                var time = selected.clone().minute(i);

                var disabled = false;
                if (minDate && time.second(59).isBefore(minDate))
                    disabled = true;
                if (maxDate && time.second(0).isAfter(maxDate))
                    disabled = true;

                if (selected.minute() == i && !disabled) {
                    html += '<option value="' + i + '" selected="selected">' + padded + '</option>';
                } else if (disabled) {
                    html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>';
                } else {
                    html += '<option value="' + i + '">' + padded + '</option>';
                }
            }

            html += '</select> ';

            //
            // seconds
            //

            if (this.timePickerSeconds) {
                html += ': <select class="secondselect">';

                for (var i = 0; i < 60; i++) {
                    var padded = i < 10 ? '0' + i : i;
                    var time = selected.clone().second(i);

                    var disabled = false;
                    if (minDate && time.isBefore(minDate))
                        disabled = true;
                    if (maxDate && time.isAfter(maxDate))
                        disabled = true;

                    if (selected.second() == i && !disabled) {
                        html += '<option value="' + i + '" selected="selected">' + padded + '</option>';
                    } else if (disabled) {
                        html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>';
                    } else {
                        html += '<option value="' + i + '">' + padded + '</option>';
                    }
                }

                html += '</select> ';
            }

            //
            // AM/PM
            //

            if (!this.timePicker24Hour) {
                html += '<select class="ampmselect">';

                var am_html = '';
                var pm_html = '';

                if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))
                    am_html = ' disabled="disabled" class="disabled"';

                if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))
                    pm_html = ' disabled="disabled" class="disabled"';

                if (selected.hour() >= 12) {
                    html += '<option value="AM"' + am_html + '>AM</option><option value="PM" selected="selected"' + pm_html + '>PM</option>';
                } else {
                    html += '<option value="AM" selected="selected"' + am_html + '>AM</option><option value="PM"' + pm_html + '>PM</option>';
                }

                html += '</select>';
            }

            this.container.find('.calendar.' + side + ' .calendar-time div').html(html);

        },

        updateFormInputs: function() {

            //ignore mouse movements while an above-calendar text input has focus
            if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
                return;

            this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format));
            if (this.endDate)
                this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format));

            if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {
                this.container.find('button.applyBtn').removeAttr('disabled');
            } else {
                this.container.find('button.applyBtn').attr('disabled', 'disabled');
            }

        },

        move: function() {
            var parentOffset = { top: 0, left: 0 },
                containerTop;
            var parentRightEdge = $(window).width();
            if (!this.parentEl.is('body')) {
                parentOffset = {
                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),
                    left: this.parentEl.offset().left - this.parentEl.scrollLeft()
                };
                parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;
            }

            if (this.drops == 'up')
                containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;
            else
                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;
            this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup');

            if (this.opens == 'left') {
                this.container.css({
                    top: containerTop,
                    right: parentRightEdge - this.element.offset().left - this.element.outerWidth(),
                    left: 'auto'
                });
                if (this.container.offset().left < 0) {
                    this.container.css({
                        right: 'auto',
                        left: 9
                    });
                }
            } else if (this.opens == 'center') {
                this.container.css({
                    top: containerTop,
                    left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2
                            - this.container.outerWidth() / 2,
                    right: 'auto'
                });
                if (this.container.offset().left < 0) {
                    this.container.css({
                        right: 'auto',
                        left: 9
                    });
                }
            } else {
                this.container.css({
                    top: containerTop,
                    left: this.element.offset().left - parentOffset.left,
                    right: 'auto'
                });
                if (this.container.offset().left + this.container.outerWidth() > $(window).width()) {
                    this.container.css({
                        left: 'auto',
                        right: 0
                    });
                }
            }
        },

        show: function(e) {
            if (this.isShowing) return;

            // Create a click proxy that is private to this instance of datepicker, for unbinding
            this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);

            // Bind global datepicker mousedown for hiding and
            $(document)
              .on('mousedown.daterangepicker', this._outsideClickProxy)
              // also support mobile devices
              .on('touchend.daterangepicker', this._outsideClickProxy)
              // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them
              .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)
              // and also close when focus changes to outside the picker (eg. tabbing between controls)
              .on('focusin.daterangepicker', this._outsideClickProxy);

            // Reposition the picker if the window is resized while it's open
            $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));

            this.oldStartDate = this.startDate.clone();
            this.oldEndDate = this.endDate.clone();
            this.previousRightTime = this.endDate.clone();

            this.updateView();
            this.container.show();
            this.move();
            this.element.trigger('show.daterangepicker', this);
            this.isShowing = true;
        },

        hide: function(e) {
            if (!this.isShowing) return;

            //incomplete date selection, revert to last values
            if (!this.endDate) {
                this.startDate = this.oldStartDate.clone();
                this.endDate = this.oldEndDate.clone();
            }

            //if a new date range was selected, invoke the user callback function
            if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))
                this.callback(this.startDate, this.endDate, this.chosenLabel);

            //if picker is attached to a text input, update it
            this.updateElement();

            $(document).off('.daterangepicker');
            $(window).off('.daterangepicker');
            this.container.hide();
            this.element.trigger('hide.daterangepicker', this);
            this.isShowing = false;
        },

        toggle: function(e) {
            if (this.isShowing) {
                this.hide();
            } else {
                this.show();
            }
        },

        outsideClick: function(e) {
            var target = $(e.target);
            // if the page is clicked anywhere except within the daterangerpicker/button
            // itself then call this.hide()
            if (
                // ie modal dialog fix
                e.type == "focusin" ||
                target.closest(this.element).length ||
                target.closest(this.container).length ||
                target.closest('.calendar-table').length
                ) return;
            this.hide();
        },

        showCalendars: function() {
            this.container.addClass('show-calendar');
            this.move();
            this.element.trigger('showCalendar.daterangepicker', this);
        },

        hideCalendars: function() {
            this.container.removeClass('show-calendar');
            this.element.trigger('hideCalendar.daterangepicker', this);
        },

        hoverRange: function(e) {

            //ignore mouse movements while an above-calendar text input has focus
            if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
                return;

            var label = e.target.innerHTML;
            if (label == this.locale.customRangeLabel) {
                this.updateView();
            } else {
                var dates = this.ranges[label];
                this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format));
                this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format));
            }
            
        },

        clickRange: function(e) {
            var label = e.target.innerHTML;
            this.chosenLabel = label;
            if (label == this.locale.customRangeLabel) {
                this.showCalendars();
            } else {
                var dates = this.ranges[label];
                this.startDate = dates[0];
                this.endDate = dates[1];

                if (!this.timePicker) {
                    this.startDate.startOf('day');
                    this.endDate.endOf('day');
                }

                if (!this.alwaysShowCalendars)
                    this.hideCalendars();
                this.clickApply();
            }
        },

        clickPrev: function(e) {
            var cal = $(e.target).parents('.calendar');
            if (cal.hasClass('left')) {
                this.leftCalendar.month.subtract(1, 'month');
                if (this.linkedCalendars)
                    this.rightCalendar.month.subtract(1, 'month');
            } else {
                this.rightCalendar.month.subtract(1, 'month');
            }
            this.updateCalendars();
        },

        clickNext: function(e) {
            var cal = $(e.target).parents('.calendar');
            if (cal.hasClass('left')) {
                this.leftCalendar.month.add(1, 'month');
            } else {
                this.rightCalendar.month.add(1, 'month');
                if (this.linkedCalendars)
                    this.leftCalendar.month.add(1, 'month');
            }
            this.updateCalendars();
        },

        hoverDate: function(e) {

            //ignore mouse movements while an above-calendar text input has focus
            if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
                return;

            //ignore dates that can't be selected
            if (!$(e.target).hasClass('available')) return;

            //have the text inputs above calendars reflect the date being hovered over
            var title = $(e.target).attr('data-title');
            var row = title.substr(1, 1);
            var col = title.substr(3, 1);
            var cal = $(e.target).parents('.calendar');
            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];

            if (this.endDate) {
                this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format));
            } else {
                this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format));
            }

            //highlight the dates between the start date and the date being hovered as a potential end date
            var leftCalendar = this.leftCalendar;
            var rightCalendar = this.rightCalendar;
            var startDate = this.startDate;
            if (!this.endDate) {
                this.container.find('.calendar td').each(function(index, el) {

                    //skip week numbers, only look at dates
                    if ($(el).hasClass('week')) return;

                    var title = $(el).attr('data-title');
                    var row = title.substr(1, 1);
                    var col = title.substr(3, 1);
                    var cal = $(el).parents('.calendar');
                    var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];

                    if (dt.isAfter(startDate) && dt.isBefore(date)) {
                        $(el).addClass('in-range');
                    } else {
                        $(el).removeClass('in-range');
                    }

                });
            }

        },

        clickDate: function(e) {

            if (!$(e.target).hasClass('available')) return;

            var title = $(e.target).attr('data-title');
            var row = title.substr(1, 1);
            var col = title.substr(3, 1);
            var cal = $(e.target).parents('.calendar');
            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];

            //
            // this function needs to do a few things:
            // * alternate between selecting a start and end date for the range,
            // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date
            // * if autoapply is enabled, and an end date was chosen, apply the selection
            // * if single date picker mode, and time picker isn't enabled, apply the selection immediately
            //

            if (this.endDate || date.isBefore(this.startDate, 'day')) {
                if (this.timePicker) {
                    var hour = parseInt(this.container.find('.left .hourselect').val(), 10);
                    if (!this.timePicker24Hour) {
                        var ampm = this.container.find('.left .ampmselect').val();
                        if (ampm === 'PM' && hour < 12)
                            hour += 12;
                        if (ampm === 'AM' && hour === 12)
                            hour = 0;
                    }
                    var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
                    var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
                    date = date.clone().hour(hour).minute(minute).second(second);
                }
                this.endDate = null;
                this.setStartDate(date.clone());
            } else if (!this.endDate && date.isBefore(this.startDate)) {
                //special case: clicking the same date for start/end, 
                //but the time of the end date is before the start date
                this.setEndDate(this.startDate.clone());
            } else {
                if (this.timePicker) {
                    var hour = parseInt(this.container.find('.right .hourselect').val(), 10);
                    if (!this.timePicker24Hour) {
                        var ampm = this.container.find('.right .ampmselect').val();
                        if (ampm === 'PM' && hour < 12)
                            hour += 12;
                        if (ampm === 'AM' && hour === 12)
                            hour = 0;
                    }
                    var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
                    var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
                    date = date.clone().hour(hour).minute(minute).second(second);
                }
                this.setEndDate(date.clone());
                if (this.autoApply) {
                  this.calculateChosenLabel();
                  this.clickApply();
                }
            }

            if (this.singleDatePicker) {
                this.setEndDate(this.startDate);
                if (!this.timePicker)
                    this.clickApply();
            }

            this.updateView();

        },

        calculateChosenLabel: function() {
          var customRange = true;
          var i = 0;
          for (var range in this.ranges) {
              if (this.timePicker) {
                  if (this.startDate.isSame(this.ranges[range][0]) && this.endDate.isSame(this.ranges[range][1])) {
                      customRange = false;
                      this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();
                      break;
                  }
              } else {
                  //ignore times when comparing dates if time picker is not enabled
                  if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {
                      customRange = false;
                      this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();
                      break;
                  }
              }
              i++;
          }
          if (customRange) {
              this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html();
              this.showCalendars();
          }
        },

        clickApply: function(e) {
            this.hide();
            this.element.trigger('apply.daterangepicker', this);
        },

        clickCancel: function(e) {
            this.startDate = this.oldStartDate;
            this.endDate = this.oldEndDate;
            this.hide();
            this.element.trigger('cancel.daterangepicker', this);
        },

        monthOrYearChanged: function(e) {
            var isLeft = $(e.target).closest('.calendar').hasClass('left'),
                leftOrRight = isLeft ? 'left' : 'right',
                cal = this.container.find('.calendar.'+leftOrRight);

            // Month must be Number for new moment versions
            var month = parseInt(cal.find('.monthselect').val(), 10);
            var year = cal.find('.yearselect').val();

            if (!isLeft) {
                if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {
                    month = this.startDate.month();
                    year = this.startDate.year();
                }
            }

            if (this.minDate) {
                if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {
                    month = this.minDate.month();
                    year = this.minDate.year();
                }
            }

            if (this.maxDate) {
                if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {
                    month = this.maxDate.month();
                    year = this.maxDate.year();
                }
            }

            if (isLeft) {
                this.leftCalendar.month.month(month).year(year);
                if (this.linkedCalendars)
                    this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');
            } else {
                this.rightCalendar.month.month(month).year(year);
                if (this.linkedCalendars)
                    this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');
            }
            this.updateCalendars();
        },

        timeChanged: function(e) {

            var cal = $(e.target).closest('.calendar'),
                isLeft = cal.hasClass('left');

            var hour = parseInt(cal.find('.hourselect').val(), 10);
            var minute = parseInt(cal.find('.minuteselect').val(), 10);
            var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;

            if (!this.timePicker24Hour) {
                var ampm = cal.find('.ampmselect').val();
                if (ampm === 'PM' && hour < 12)
                    hour += 12;
                if (ampm === 'AM' && hour === 12)
                    hour = 0;
            }

            if (isLeft) {
                var start = this.startDate.clone();
                start.hour(hour);
                start.minute(minute);
                start.second(second);
                this.setStartDate(start);
                if (this.singleDatePicker) {
                    this.endDate = this.startDate.clone();
                } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {
                    this.setEndDate(start.clone());
                }
            } else if (this.endDate) {
                var end = this.endDate.clone();
                end.hour(hour);
                end.minute(minute);
                end.second(second);
                this.setEndDate(end);
            }

            //update the calendars so all clickable dates reflect the new time component
            this.updateCalendars();

            //update the form inputs above the calendars with the new time
            this.updateFormInputs();

            //re-render the time pickers because changing one selection can affect what's enabled in another
            this.renderTimePicker('left');
            this.renderTimePicker('right');

        },

        formInputsChanged: function(e) {
            var isRight = $(e.target).closest('.calendar').hasClass('right');
            var start = moment(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format);
            var end = moment(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format);

            if (start.isValid() && end.isValid()) {

                if (isRight && end.isBefore(start))
                    start = end.clone();

                this.setStartDate(start);
                this.setEndDate(end);

                if (isRight) {
                    this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format));
                } else {
                    this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format));
                }

            }

            this.updateCalendars();
            if (this.timePicker) {
                this.renderTimePicker('left');
                this.renderTimePicker('right');
            }
        },

        elementChanged: function() {
            if (!this.element.is('input')) return;
            if (!this.element.val().length) return;
            if (this.element.val().length < this.locale.format.length) return;

            var dateString = this.element.val().split(this.locale.separator),
                start = null,
                end = null;

            if (dateString.length === 2) {
                start = moment(dateString[0], this.locale.format);
                end = moment(dateString[1], this.locale.format);
            }

            if (this.singleDatePicker || start === null || end === null) {
                start = moment(this.element.val(), this.locale.format);
                end = start;
            }

            if (!start.isValid() || !end.isValid()) return;

            this.setStartDate(start);
            this.setEndDate(end);
            this.updateView();
        },

        keydown: function(e) {
            //hide on tab or enter
            if ((e.keyCode === 9) || (e.keyCode === 13)) {
                this.hide();
            }
        },

        updateElement: function() {
            if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {
                this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
                this.element.trigger('change');
            } else if (this.element.is('input') && this.autoUpdateInput) {
                this.element.val(this.startDate.format(this.locale.format));
                this.element.trigger('change');
            }
        },

        remove: function() {
            this.container.remove();
            this.element.off('.daterangepicker');
            this.element.removeData();
        }

    };

    $.fn.daterangepicker = function(options, callback) {
        this.each(function() {
            var el = $(this);
            if (el.data('daterangepicker'))
                el.data('daterangepicker').remove();
            el.data('daterangepicker', new DateRangePicker(el, options, callback));
        });
        return this;
    };
    
    return DateRangePicker;

}));

!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():t.echarts=e()}(this,function(){var t,e;!function(){function i(t,e){if(!e)return t;if(0===t.indexOf(".")){var i=e.split("/"),n=t.split("/"),r=i.length-1,a=n.length,o=0,s=0;t:for(var l=0;a>l;l++)switch(n[l]){case"..":if(!(r>o))break t;o++,s++;break;case".":s++;break;default:break t}return i.length=r-o,n=n.slice(s),i.concat(n).join("/")}return t}function n(t){function e(e,o){if("string"==typeof e){var s=n[e];return s||(s=a(i(e,t)),n[e]=s),s}e instanceof Array&&(o=o||function(){},o.apply(this,r(e,o,t)))}var n={};return e}function r(e,n,r){for(var s=[],l=o[r],u=0,c=Math.min(e.length,n.length);c>u;u++){var h,d=i(e[u],r);switch(d){case"require":h=l&&l.require||t;break;case"exports":h=l.exports;break;case"module":h=l;break;default:h=a(d)}s.push(h)}return s}function a(t){var e=o[t];if(!e)throw new Error("No "+t);if(!e.defined){var i=e.factory,n=i.apply(this,r(e.deps||[],i,t));"undefined"!=typeof n&&(e.exports=n),e.defined=1}return e.exports}var o={};e=function(t,e,i){o[t]={id:t,deps:e,factory:i,defined:0,exports:{},require:n(t)}},t=n("")}();var i="../core/util",n="reverse",r="transform",a="../../util/number",o="../../util/model",s="symbol",l="interval",u="radius",c="dataToCoord",h="../../echarts",d="../../util/graphic",f="dataToPoint",p="getAxis",v="category",m="toFixed",g="parsePercent",y="linearMap",_="mapArray",x="getDataExtent",b="ordinal",w="dimensions",M="getItemModel",S="setShape",T="rotation",C="parent",L="inside",A="setHoverStyle",P="stroke",I="lineWidth",k="applyTransform",D="Polygon",z="zrender/core/BoundingRect",R="indexOfName",O="getItemGraphicEl",V="normal",E="emphasis",B="animation",N="getShallow",Z="getItemVisual",G="getName",H="getRawValue",F="getBaseAxis",W="ecModel",q="mergeDefaultAndTheme",U="getComponent",X="concat",j="mergeOption",Y="option",$="createElement",J="getContext",Q="undefined",K="getExtent",te="getLabel",ee="contain",ie="../util/number",ne="opacity",re="position",ae="center",oe="middle",se="getLayoutRect",le="getBoundingRect",ue="getTextColor",ce="getFont",he="textAlign",de="textStyle",fe="coordinateSystem",pe="getRect",ve="removeAll",me="inherits",ge="indexOf",ye="filter",_e="number",xe="extendComponentView",be="extendComponentModel",we="registerAction",Me="function",Se="isArray",Te="replace",Ce="zlevel",Le="setStyle",Ae="traverse",Pe="getDataParams",Ie="seriesIndex",ke="dataIndex",De="target",ze="mouseout",Re="mouseover",Oe="splice",Ve="dispose",Ee="series",Be="trigger",Ne="length",Ze="defaults",Ge="dispatchAction",He="extend",Fe="remove",We="isObject",qe="getData",Ue="eachSeries",Xe="update",je="create",Ye="height",$e="bottom",Je="ignore",Qe="eachComponent",Ke="storage",ti="backgroundColor",ei="canvasSupported",ii="getHeight",ni="getWidth",ri="getModel",ai="resize",oi="string",si="prototype",li="toLowerCase",ui="zrender/core/vector",ci="zrender/tool/color",hi="zrender/core/util",di="zrender/core/env",fi="require";e("echarts/echarts",[fi,di,"./model/Global","./ExtensionAPI","./CoordinateSystem","./model/OptionManager","./model/Component","./model/Series","./view/Component","./view/Chart","./util/graphic","zrender",hi,ci,"zrender/mixin/Eventful","zrender/core/timsort","./loading/default","./visual/seriesColor","./preprocessor/backwardCompat","./data/List","./model/Model","./util/number","./util/format","zrender/core/matrix",ui],function(t){function e(t){return function(e,i,n){e=e&&e[li](),P[si][t].call(this,e,i,n)}}function i(){P.call(this)}function n(t,e,n){function r(t,e){return t.prio-e.prio}n=n||{},typeof e===oi&&(e=$[e]),this.id,this.group,this._dom=t,this._zr=C.init(t,{renderer:n.renderer||"canvas",devicePixelRatio:n.devicePixelRatio}),this._theme=L.clone(e),this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._api=new y(this),this._coordSysMgr=new _,P.call(this),this._messageCenter=new i,this._initEvents(),this[ai]=L.bind(this[ai],this),this._pendingActions=[],I(Y,r),I(X,r)}function r(t,e){var i=this._model;i&&i[Qe]({mainType:"series",query:e},function(n){var r=this._chartsMap[n.__viewId];r&&r.__alive&&r[t](n,i,this._api,e)},this)}function a(t,e,i){var n=this._api;k(this._componentsViews,function(r){var a=r.__model;r[t](a,e,n,i),p(a,r)},this),e[Ue](function(r){var a=this._chartsMap[r.__viewId];a[t](r,e,n,i),p(r,a),f(r,a)},this),d(this._zr,e)}function o(t,e){for(var i="component"===t,n=i?this._componentsViews:this._chartsViews,r=i?this._componentsMap:this._chartsMap,a=this._zr,o=0;o<n[Ne];o++)n[o].__alive=!1;e[i?Qe:Ue](function(t,o){if(i){if(t===Ee)return}else o=t;var s=o.id+"_"+o.type,l=r[s];if(!l){var u=b.parseClassType(o.type),c=i?M.getClass(u.main,u.sub):S.getClass(u.sub);if(!c)return;l=new c,l.init(e,this._api),r[s]=l,n.push(l),a.add(l.group)}o.__viewId=s,l.__alive=!0,l.__id=s,l.__model=o},this);for(var o=0;o<n[Ne];){var s=n[o];s.__alive?o++:(a[Fe](s.group),s[Ve](e,this._api),n[Oe](o,1),delete r[s.__id])}}function s(t,e){k(X,function(i){i.func(t,e)})}function l(t){var e={};t[Ue](function(t){var i=t.get("stack"),n=t[qe]();if(i&&"list"===n.type){var r=e[i];r&&(n.stackedOn=r),e[i]=n}})}function u(t,e){var i=this._api;k(Y,function(n){n.isLayout&&n.func(t,i,e)})}function c(t,e){var i=this._api;t.clearColorPalette(),t[Ue](function(t){t.clearColorPalette()}),k(Y,function(n){n.func(t,i,e)})}function h(t,e){var i=this._api;k(this._componentsViews,function(n){var r=n.__model;n.render(r,t,i,e),p(r,n)},this),k(this._chartsViews,function(t){t.__alive=!1},this),t[Ue](function(n){var r=this._chartsMap[n.__viewId];r.__alive=!0,r.render(n,t,i,e),r.group.silent=!!n.get("silent"),p(n,r),f(n,r)},this),d(this._zr,t),k(this._chartsViews,function(e){e.__alive||e[Fe](t,i)},this)}function d(t,e){var i=t[Ke],n=0;i[Ae](function(t){t.isGroup||n++}),n>e.get("hoverLayerThreshold")&&!m.node&&i[Ae](function(t){t.isGroup||(t.useHoverLayer=!0)})}function f(t,e){var i=0;e.group[Ae](function(t){"group"===t.type||t[Je]||i++});var n=+t.get("progressive"),r=i>t.get("progressiveThreshold")&&n&&!m.node;r&&e.group[Ae](function(t){t.isGroup||(t.progressive=r?Math.floor(i++/n):-1,r&&t.stopAnimation(!0))});var a=t.get("blendMode")||null;e.group[Ae](function(t){t.isGroup||t[Le]("blend",a)})}function p(t,e){var i=t.get("z"),n=t.get(Ce);e.group[Ae](function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t[Ce]=n))})}function v(t){function e(t,e){for(var i=0;i<t[Ne];i++){var n=t[i];n[a]=e}}var i=0,n=1,r=2,a="__connectUpdateStatus";L.each(U,function(o,s){t._messageCenter.on(s,function(o){if(Q[t.group]&&t[a]!==i){var s=t.makeActionFromEvent(o),l=[];for(var u in J){var c=J[u];c!==t&&c.group===t.group&&l.push(c)}e(l,i),k(l,function(t){t[a]!==n&&t[Ge](s)}),e(l,r)}})})}var m=t(di),g=t("./model/Global"),y=t("./ExtensionAPI"),_=t("./CoordinateSystem"),x=t("./model/OptionManager"),b=t("./model/Component"),w=t("./model/Series"),M=t("./view/Component"),S=t("./view/Chart"),T=t("./util/graphic"),C=t("zrender"),L=t(hi),A=t(ci),P=t("zrender/mixin/Eventful"),I=t("zrender/core/timsort"),k=L.each,D=1e3,z=5e3,R=1e3,O=2e3,V=3e3,E=4e3,B=5e3,N="__flag_in_main_process",Z="_hasGradientOrPatternBg";i[si].on=e("on"),i[si].off=e("off"),i[si].one=e("one"),L.mixin(i,P);var G=n[si];G.getDom=function(){return this._dom},G.getZr=function(){return this._zr},G.setOption=function(t,e,i){this[N]=!0,(!this._model||e)&&(this._model=new g(null,null,this._theme,new x(this._api))),this._model.setOption(t,j),H.prepareAndUpdate.call(this),this[N]=!1,this._flushPendingActions(),!i&&this._zr.refreshImmediately()},G.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},G[ri]=function(){return this._model},G.getOption=function(){return this._model.getOption()},G[ni]=function(){return this._zr[ni]()},G[ii]=function(){return this._zr[ii]()},G.getRenderedCanvas=function(t){if(m[ei]){t=t||{},t.pixelRatio=t.pixelRatio||1,t[ti]=t[ti]||this._model.get(ti);var e=this._zr,i=e[Ke].getDisplayList();return L.each(i,function(t){t.stopAnimation(!0)}),e.painter.getRenderedCanvas(t)}},G.getDataURL=function(t){t=t||{};var e=t.excludeComponents,i=this._model,n=[],r=this;k(e,function(t){i[Qe]({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group[Je]||(n.push(e),e.group[Je]=!0)})});var a=this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return k(n,function(t){t.group[Je]=!1}),a},G.getConnectedDataURL=function(t){if(m[ei]){var e=this.group,i=Math.min,n=Math.max,r=1/0;if(Q[e]){var a=r,o=r,s=-r,l=-r,u=[],c=t&&t.pixelRatio||1;for(var h in J){var d=J[h];if(d.group===e){var f=d.getRenderedCanvas(L.clone(t)),p=d.getDom().getBoundingClientRect();a=i(p.left,a),o=i(p.top,o),s=n(p.right,s),l=n(p[$e],l),u.push({dom:f,left:p.left,top:p.top})}}a*=c,o*=c,s*=c,l*=c;var v=s-a,g=l-o,y=L.createCanvas();y.width=v,y[Ye]=g;var _=C.init(y);return k(u,function(t){var e=new T.Image({style:{x:t.left*c-a,y:t.top*c-o,image:t.dom}});_.add(e)}),_.refreshImmediately(),y.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}};var H={update:function(t){var e=this._model,i=this._api,n=this._coordSysMgr,r=this._zr;if(e){e.restoreData(),n[je](this._model,this._api),s.call(this,e,i),l.call(this,e),n[Xe](e,i),c.call(this,e,t),h.call(this,e,t);var a=e.get(ti)||"transparent",o=r.painter;if(o.isSingleCanvas&&o.isSingleCanvas())r.configLayer(0,{clearColor:a});else{if(!m[ei]){var u=A.parse(a);a=A.stringify(u,"rgb"),0===u[3]&&(a="transparent")}a.colorStops||a.image?(r.configLayer(0,{clearColor:a}),this[Z]=!0,this._dom.style.background="transparent"):(this[Z]&&r.configLayer(0,{clearColor:null}),this[Z]=!1,this._dom.style.background=a)}}},updateView:function(t){var e=this._model;e&&(e[Ue](function(t){t[qe]().clearAllVisual()}),c.call(this,e,t),a.call(this,"updateView",e,t))},updateVisual:function(t){var e=this._model;e&&(e[Ue](function(t){t[qe]().clearAllVisual()}),c.call(this,e,t),a.call(this,"updateVisual",e,t))},updateLayout:function(t){var e=this._model;e&&(u.call(this,e,t),a.call(this,"updateLayout",e,t))},highlight:function(t){r.call(this,"highlight",t)},downplay:function(t){r.call(this,"downplay",t)},prepareAndUpdate:function(t){var e=this._model;o.call(this,"component",e),o.call(this,"chart",e),H[Xe].call(this,t)}};G[ai]=function(){this[N]=!0,this._zr[ai]();var t=this._model&&this._model.resetOption("media");H[t?"prepareAndUpdate":Xe].call(this),this._loadingFX&&this._loadingFX[ai](),this[N]=!1,this._flushPendingActions()};var F=t("./loading/default");G.showLoading=function(t,e){L[We](t)&&(e=t,t="default"),this.hideLoading();var i=F(this._api,e),n=this._zr;this._loadingFX=i,n.add(i)},G.hideLoading=function(){this._loadingFX&&this._zr[Fe](this._loadingFX),this._loadingFX=null},G.makeActionFromEvent=function(t){var e=L[He]({},t);return e.type=U[t.type],e},G[Ge]=function(t,e){var i=q[t.type];if(i){var n=i.actionInfo,r=n[Xe]||Xe;if(this[N])return void this._pendingActions.push(t);this[N]=!0;var a=[t],o=!1;t.batch&&(o=!0,a=L.map(t.batch,function(e){return e=L[Ze](L[He]({},e),t),e.batch=null,e}));for(var s,l=[],u="highlight"===t.type||"downplay"===t.type,c=0;c<a[Ne];c++){var h=a[c];s=i.action(h,this._model),s=s||L[He]({},h),s.type=n.event||s.type,l.push(s),u&&H[r].call(this,h)}"none"!==r&&!u&&H[r].call(this,t),s=o?{type:n.event||t.type,batch:l}:l[0],this[N]=!1,!e&&this._messageCenter[Be](s.type,s),this._flushPendingActions()}},G._flushPendingActions=function(){for(var t=this._pendingActions;t[Ne];){var e=t.shift();this[Ge](e)}},G.on=e("on"),G.off=e("off"),G.one=e("one");var W=["click","dblclick",Re,ze,"mousedown","mouseup","globalout"];G._initEvents=function(){k(W,function(t){this._zr.on(t,function(e){var i=this[ri](),n=e[De];if(n&&null!=n[ke]){var r=n.dataModel||i.getSeriesByIndex(n[Ie]),a=r&&r[Pe](n[ke],n.dataType)||{};a.event=e,a.type=t,this[Be](t,a)}else n&&n.eventData&&this[Be](t,n.eventData)},this)},this),k(U,function(t,e){this._messageCenter.on(e,function(t){this[Be](e,t)},this)},this)},G.isDisposed=function(){return this._disposed},G.clear=function(){this.setOption({},!0)},G[Ve]=function(){if(!this._disposed){this._disposed=!0;var t=this._api,e=this._model;k(this._componentsViews,function(i){i[Ve](e,t)}),k(this._chartsViews,function(i){i[Ve](e,t)}),this._zr[Ve](),delete J[this.id]}},L.mixin(n,P);var q=[],U={},X=[],j=[],Y=[],$={},J={},Q={},K=new Date-0,te=new Date-0,ee="_echarts_instance_",ie={version:"3.2.0",dependencies:{zrender:"3.1.1"}};return ie.init=function(t,e,i){var r=new n(t,e,i);return r.id="ec_"+K++,J[r.id]=r,t.setAttribute&&t.setAttribute(ee,r.id),v(r),r},ie.connect=function(t){if(L[Se](t)){var e=t;t=null,L.each(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+te++,L.each(e,function(e){e.group=t})}return Q[t]=!0,t},ie.disConnect=function(t){Q[t]=!1},ie[Ve]=function(t){L.isDom(t)?t=ie.getInstanceByDom(t):typeof t===oi&&(t=J[t]),t instanceof n&&!t.isDisposed()&&t[Ve]()},ie.getInstanceByDom=function(t){var e=t.getAttribute(ee);return J[e]},ie.getInstanceById=function(t){return J[t]},ie.registerTheme=function(t,e){$[t]=e},ie.registerPreprocessor=function(t){j.push(t)},ie.registerProcessor=function(t,e){typeof t===Me&&(e=t,t=D),X.push({prio:t,func:e})},ie[we]=function(t,e,i){typeof e===Me&&(i=e,e="");var n=L[We](t)?t.type:[t,t={event:e}][0];t.event=(t.event||n)[li](),e=t.event,q[n]||(q[n]={action:i,actionInfo:t}),U[e]=n},ie.registerCoordinateSystem=function(t,e){_.register(t,e)},ie.registerLayout=function(t,e){typeof t===Me&&(e=t,t=R),Y.push({prio:t,func:e,isLayout:!0})},ie.registerVisual=function(t,e){typeof t===Me&&(e=t,t=V),Y.push({prio:t,func:e})},ie.extendChartView=function(t){return S[He](t)},ie[be]=function(t){return b[He](t)},ie.extendSeriesModel=function(t){return w[He](t)},ie[xe]=function(t){return M[He](t)},ie.setCanvasCreator=function(t){L.createCanvas=t},ie.registerVisual(O,t("./visual/seriesColor")),ie.registerPreprocessor(t("./preprocessor/backwardCompat")),ie[we]({type:"highlight",event:"highlight",update:"highlight"},L.noop),ie[we]({type:"downplay",event:"downplay",update:"downplay"},L.noop),ie.List=t("./data/List"),ie.Model=t("./model/Model"),ie.graphic=t("./util/graphic"),ie[_e]=t("./util/number"),ie.format=t("./util/format"),ie.matrix=t("zrender/core/matrix"),ie.vector=t(ui),ie.color=t(ci),ie.util={},k(["map","each",ye,ge,me,"reduce",ye,"bind","curry",Se,"isString",We,"isFunction",He,Ze],function(t){ie.util[t]=L[t]}),ie.PRIORITY={PROCESSOR:{FILTER:D,STATISTIC:z},VISUAL:{LAYOUT:R,GLOBAL:O,CHART:V,COMPONENT:E,BRUSH:B}},ie}),e("echarts/chart/bar",[fi,hi,"../coord/cartesian/Grid","./bar/BarSeries","./bar/BarView","../layout/barGrid","../echarts","../component/grid"],function(t){var e=t(hi);t("../coord/cartesian/Grid"),t("./bar/BarSeries"),t("./bar/BarView");var i=t("../layout/barGrid"),n=t("../echarts");n.registerLayout(e.curry(i,"bar")),n.registerVisual(function(t){t.eachSeriesByType("bar",function(t){var e=t[qe]();e.setVisual("legendSymbol","roundRect")})}),t("../component/grid")}),e("echarts/chart/line",[fi,hi,"../echarts","./line/LineSeries","./line/LineView","../visual/symbol","../layout/points","../processor/dataSample","../component/grid"],function(t){var e=t(hi),i=t("../echarts"),n=i.PRIORITY;t("./line/LineSeries"),t("./line/LineView"),i.registerVisual(e.curry(t("../visual/symbol"),"line","circle","line")),i.registerLayout(e.curry(t("../layout/points"),"line")),i.registerProcessor(n.PROCESSOR.STATISTIC,e.curry(t("../processor/dataSample"),"line")),t("../component/grid")}),e("echarts/chart/pie",[fi,hi,"../echarts","./pie/PieSeries","./pie/PieView","../action/createDataSelectAction","../visual/dataColor","./pie/pieLayout","../processor/dataFilter"],function(t){var e=t(hi),i=t("../echarts");t("./pie/PieSeries"),t("./pie/PieView"),t("../action/createDataSelectAction")("pie",[{type:"pieToggleSelect",event:"pieselectchanged",method:"toggleSelected"},{type:"pieSelect",event:"pieselected",method:"select"},{type:"pieUnSelect",event:"pieunselected",method:"unSelect"}]),i.registerVisual(e.curry(t("../visual/dataColor"),"pie")),i.registerLayout(e.curry(t("./pie/pieLayout"),"pie")),i.registerProcessor(e.curry(t("../processor/dataFilter"),"pie"))}),e("echarts/chart/map",[fi,"../echarts","./map/MapSeries","./map/MapView","../action/geoRoam","../coord/geo/geoCreator","./map/mapSymbolLayout","./map/mapVisual","./map/mapDataStatistic","./map/backwardCompat","../action/createDataSelectAction"],function(t){var e=t("../echarts"),i=e.PRIORITY;t("./map/MapSeries"),t("./map/MapView"),t("../action/geoRoam"),t("../coord/geo/geoCreator"),e.registerLayout(t("./map/mapSymbolLayout")),e.registerVisual(t("./map/mapVisual")),e.registerProcessor(i.PROCESSOR.STATISTIC,t("./map/mapDataStatistic")),e.registerPreprocessor(t("./map/backwardCompat")),t("../action/createDataSelectAction")("map",[{type:"mapToggleSelect",event:"mapselectchanged",method:"toggleSelected"},{type:"mapSelect",event:"mapselected",method:"select"},{type:"mapUnSelect",event:"mapunselected",method:"unSelect"}])}),e("echarts/component/grid",[fi,"../util/graphic",hi,"../coord/cartesian/Grid","./axis","../echarts"],function(t){var e=t("../util/graphic"),i=t(hi);t("../coord/cartesian/Grid"),t("./axis"),t("../echarts")[xe]({type:"grid",render:function(t){this.group[ve](),t.get("show")&&this.group.add(new e.Rect({shape:t[fe][pe](),style:i[Ze]({fill:t.get(ti)},t.getItemStyle()),silent:!0}))}})}),e("echarts/component/geo",[fi,"../coord/geo/GeoModel","../coord/geo/geoCreator","./geo/GeoView","../action/geoRoam","../echarts",hi],function(t){function e(t,e){e[Xe]="updateView",i[we](e,function(e,i){var r={};return i[Qe]({mainType:"geo",query:e},function(i){i[t](e.name);var a=i[fe];n.each(a.regions,function(t){r[t.name]=i.isSelected(t.name)||!1})}),{selected:r,name:e.name}})}t("../coord/geo/GeoModel"),t("../coord/geo/geoCreator"),t("./geo/GeoView"),t("../action/geoRoam");var i=t("../echarts"),n=t(hi);e("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),e("select",{type:"geoSelect",event:"geoselected"}),e("unSelect",{type:"geoUnSelect",event:"geounselected"})}),e("echarts/component/title",[fi,"../echarts","../util/graphic","../util/layout"],function(t){var e=t("../echarts"),i=t("../util/graphic"),n=t("../util/layout");e[be]({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),e[xe]({type:"title",render:function(t,e,r){if(this.group[ve](),t.get("show")){var a=this.group,o=t[ri](de),s=t[ri]("subtextStyle"),l=t.get(he),u=t.get("textBaseline"),c=new i.Text({style:{text:t.get("text"),textFont:o[ce](),fill:o[ue]()},z2:10}),h=c[le](),d=t.get("subtext"),f=new i.Text({style:{text:d,textFont:s[ce](),fill:s[ue](),y:h[Ye]+t.get("itemGap"),textBaseline:"top"},z2:10}),p=t.get("link"),v=t.get("sublink");c.silent=!p,f.silent=!v,p&&c.on("click",function(){window.open(p,"_"+t.get(De))}),v&&f.on("click",function(){window.open(v,"_"+t.get("subtarget"))}),a.add(c),d&&a.add(f);var m=a[le](),g=t.getBoxLayoutParams();g.width=m.width,g[Ye]=m[Ye];var y=n[se](g,{width:r[ni](),height:r[ii]()},t.get("padding"));l||(l=t.get("left")||t.get("right"),l===oe&&(l=ae),"right"===l?y.x+=y.width:l===ae&&(y.x+=y.width/2)),u||(u=t.get("top")||t.get($e),u===ae&&(u=oe),u===$e?y.y+=y[Ye]:u===oe&&(y.y+=y[Ye]/2),u=u||"top"),a.attr(re,[y.x,y.y]);var _={textAlign:l,textVerticalAlign:u};c[Le](_),f[Le](_),m=a[le]();var x=y.margin,b=t.getItemStyle(["color",ne]);b.fill=t.get(ti);var w=new i.Rect({shape:{x:m.x-x[3],y:m.y-x[0],width:m.width+x[1]+x[3],height:m[Ye]+x[0]+x[2]},style:b,silent:!0});i.subPixelOptimizeRect(w),a.add(w)}}})}),e("echarts/component/legend",[fi,"./legend/LegendModel","./legend/legendAction","./legend/LegendView","../echarts","./legend/legendFilter"],function(t){t("./legend/LegendModel"),t("./legend/legendAction"),t("./legend/LegendView");var e=t("../echarts");e.registerProcessor(t("./legend/legendFilter"))}),e("echarts/component/tooltip",[fi,"./tooltip/TooltipModel","./tooltip/TooltipView","../echarts"],function(t){t("./tooltip/TooltipModel"),t("./tooltip/TooltipView"),t("../echarts")[we]({type:"showTip",event:"showTip",update:"none"},function(){}),t("../echarts")[we]({type:"hideTip",event:"hideTip",update:"none"},function(){})}),e("echarts/component/markPoint",[fi,"./marker/MarkPointModel","./marker/MarkPointView","../echarts"],function(t){t("./marker/MarkPointModel"),t("./marker/MarkPointView"),t("../echarts").registerPreprocessor(function(t){t.markPoint=t.markPoint||{}})}),e("echarts/component/dataZoom",[fi,"./dataZoom/typeDefaulter","./dataZoom/DataZoomModel","./dataZoom/DataZoomView","./dataZoom/SliderZoomModel","./dataZoom/SliderZoomView","./dataZoom/InsideZoomModel","./dataZoom/InsideZoomView","./dataZoom/dataZoomProcessor","./dataZoom/dataZoomAction"],function(t){t("./dataZoom/typeDefaulter"),t("./dataZoom/DataZoomModel"),t("./dataZoom/DataZoomView"),t("./dataZoom/SliderZoomModel"),t("./dataZoom/SliderZoomView"),t("./dataZoom/InsideZoomModel"),t("./dataZoom/InsideZoomView"),t("./dataZoom/dataZoomProcessor"),t("./dataZoom/dataZoomAction")}),e("echarts/component/toolbox",[fi,"./toolbox/ToolboxModel","./toolbox/ToolboxView","./toolbox/feature/SaveAsImage","./toolbox/feature/MagicType","./toolbox/feature/DataView","./toolbox/feature/DataZoom","./toolbox/feature/Restore"],function(t){t("./toolbox/ToolboxModel"),t("./toolbox/ToolboxView"),t("./toolbox/feature/SaveAsImage"),t("./toolbox/feature/MagicType"),t("./toolbox/feature/DataView"),t("./toolbox/feature/DataZoom"),t("./toolbox/feature/Restore")}),e("zrender/vml/vml",[fi,"./graphic","../zrender","./Painter"],function(t){t("./graphic"),t("../zrender").registerPainter("vml",t("./Painter"))}),e("echarts/scale/Time",[fi,hi,ie,"../util/format","./Interval"],function(t){var e=t(hi),i=t(ie),n=t("../util/format"),r=t("./Interval"),a=r[si],o=Math.ceil,s=Math.floor,l=1e3,u=60*l,c=60*u,h=24*c,d=function(t,e,i,n){for(;n>i;){var r=i+n>>>1;t[r][2]<e?i=r+1:n=r}return i},f=r[He]({type:"time",getLabel:function(t){var e=this._stepLvl,i=new Date(t);return n.formatTime(e[0],i)},niceExtent:function(t,e,n){var r=this._extent;if(r[0]===r[1]&&(r[0]-=h,r[1]+=h),r[1]===-1/0&&1/0===r[0]){var a=new Date;r[1]=new Date(a.getFullYear(),a.getMonth(),a.getDate()),r[0]=r[1]-h}this.niceTicks(t);var l=this._interval;e||(r[0]=i.round(s(r[0]/l)*l)),n||(r[1]=i.round(o(r[1]/l)*l))},niceTicks:function(t){t=t||10;var e=this._extent,n=e[1]-e[0],r=n/t,a=p[Ne],l=d(p,r,0,a),u=p[Math.min(l,a-1)],c=u[2];if("year"===u[0]){var h=n/c,f=i.nice(h/t,!0);c*=f}var v=[o(e[0]/c)*c,s(e[1]/c)*c];this._stepLvl=u,this._interval=c,this._niceExtent=v},parse:function(t){return+i.parseDate(t)}});e.each([ee,"normalize"],function(t){f[si][t]=function(e){return a[t].call(this,this.parse(e))}});var p=[["hh:mm:ss",1,l],["hh:mm:ss",5,5*l],["hh:mm:ss",10,10*l],["hh:mm:ss",15,15*l],["hh:mm:ss",30,30*l],["hh:mm\nMM-dd",1,u],["hh:mm\nMM-dd",5,5*u],["hh:mm\nMM-dd",10,10*u],["hh:mm\nMM-dd",15,15*u],["hh:mm\nMM-dd",30,30*u],["hh:mm\nMM-dd",1,c],["hh:mm\nMM-dd",2,2*c],["hh:mm\nMM-dd",6,6*c],["hh:mm\nMM-dd",12,12*c],["MM-dd\nyyyy",1,h],["week",7,7*h],["month",1,31*h],["quarter",3,380*h/4],["half-year",6,380*h/2],["year",1,380*h]];return f[je]=function(){return new f},f}),e("echarts/scale/Log",[fi,hi,"./Scale",ie,"./Interval"],function(t){var e=t(hi),i=t("./Scale"),n=t(ie),r=t("./Interval"),a=i[si],o=r[si],s=Math.floor,l=Math.ceil,u=Math.pow,c=10,h=Math.log,d=i[He]({type:"log",getTicks:function(){return e.map(o.getTicks.call(this),function(t){return n.round(u(c,t))})},getLabel:o[te],scale:function(t){return t=a.scale.call(this,t),u(c,t)},setExtent:function(t,e){t=h(t)/h(c),e=h(e)/h(c),o.setExtent.call(this,t,e)},getExtent:function(){var t=a[K].call(this);return t[0]=u(c,t[0]),t[1]=u(c,t[1]),t},unionExtent:function(t){t[0]=h(t[0])/h(c),t[1]=h(t[1])/h(c),a.unionExtent.call(this,t)},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(1/0===i||0>=i)){var r=u(10,s(h(i/t)/Math.LN10)),a=t/i*r;.5>=a&&(r*=10);var o=[n.round(l(e[0]/r)*r),n.round(s(e[1]/r)*r)];this._interval=r,this._niceExtent=o}},niceExtent:o.niceExtent});return e.each([ee,"normalize"],function(t){d[si][t]=function(e){return e=h(e)/h(c),a[t].call(this,e)}}),d[je]=function(){return new d},d}),e(di,[],function(){function t(t){var e={},i={},n=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),r=t.match(/Edge\/([\d.]+)/);return n&&(i.ie=!0,i.version=n[1]),n&&(i.ie=!0,i.version=n[1]),r&&(i.edge=!0,i.version=r[1]),{browser:i,os:e,node:!1,canvasSupported:document[$]("canvas")[J]?!0:!1,touchEventsSupported:"ontouchstart"in window&&!i.ie&&!i.edge,pointerEventsSupported:"onpointerdown"in window&&(i.edge||i.ie&&i.version>=10)}}var e={};return e=typeof navigator===Q?{browser:{},os:{},node:!0,canvasSupported:!0}:t(navigator.userAgent)}),e("echarts/model/Global",[fi,hi,"../util/model","./Model","./Component","./globalDefault","./mixin/colorPalette"],function(t){function e(t,e){for(var i in e)y.hasClass(i)||("object"==typeof e[i]?t[i]=t[i]?u.merge(t[i],e[i],!1):u.clone(e[i]):null==t[i]&&(t[i]=e[i]))}function i(t){t=t,this[Y]={},this[Y][x]=1,this._componentsMap={},this._seriesIndices=null,e(t,this._theme[Y]),u.merge(t,_,!1),this[j](t)}function n(t,e){u[Se](e)||(e=e?[e]:[]);var i={};return d(e,function(e){i[e]=(t[e]||[]).slice()}),i}function r(t,e){var i={};d(e,function(t){var e=t.exist;e&&(i[e.id]=t)}),d(e,function(e){var n=e[Y];if(u.assert(!n||null==n.id||!i[n.id]||i[n.id]===e,"id duplicates: "+(n&&n.id)),n&&null!=n.id&&(i[n.id]=e),g(n)){var r=a(t,n,e.exist);e.keyInfo={mainType:t,subType:r}}}),d(e,function(t){var e=t.exist,n=t[Y],r=t.keyInfo;if(g(n)){if(r.name=null!=n.name?n.name+"":e?e.name:"\x00-",e)r.id=e.id;else if(null!=n.id)r.id=n.id+"";else{var a=0;do r.id="\x00"+r.name+"\x00"+a++;while(i[r.id])}i[r.id]=t}})}function a(t,e,i){var n=e.type?e.type:i?i.subType:y.determineSubType(t,e);return n}function o(t){return p(t,function(t){return t.componentIndex})||[]}function s(t,e){return e.hasOwnProperty("subType")?f(t,function(t){return t.subType===e.subType}):t}function l(t){}var u=t(hi),c=t("../util/model"),h=t("./Model"),d=u.each,f=u[ye],p=u.map,v=u[Se],m=u[ge],g=u[We],y=t("./Component"),_=t("./globalDefault"),x="\x00_ec_inner",b=h[He]({constructor:b,init:function(t,e,i,n){i=i||{},this[Y]=null,this._theme=new h(i),this._optionManager=n},setOption:function(t,e){u.assert(!(x in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption()},resetOption:function(t){var e=!1,n=this._optionManager;if(!t||"recreate"===t){var r=n.mountOption("recreate"===t);this[Y]&&"recreate"!==t?(this.restoreData(),this[j](r)):i.call(this,r),e=!0}if(("timeline"===t||"media"===t)&&this.restoreData(),!t||"recreate"===t||"timeline"===t){var a=n.getTimelineOption(this);a&&(this[j](a),e=!0)}if(!t||"recreate"===t||"media"===t){var o=n.getMediaOption(this,this._api);o[Ne]&&d(o,function(t){this[j](t,e=!0)},this)}return e},mergeOption:function(t){function e(e,s){var l=c.normalizeToArray(t[e]),h=c.mappingToExists(a[e],l);r(e,h);var f=n(a,s);i[e]=[],a[e]=[],d(h,function(t,n){var r=t.exist,o=t[Y];if(u.assert(g(o)||r,"Empty component definition"),o){var s=y.getClass(e,t.keyInfo.subType,!0);r&&r instanceof s?(r[j](o,this),r.optionUpdated(o,!1)):(r=new s(o,this,this,u[He]({dependentModels:f,componentIndex:n},t.keyInfo)),r.optionUpdated(null,!0))}else r[j]({},this),r.optionUpdated({},!1);a[e][n]=r,i[e][n]=r[Y]},this),e===Ee&&(this._seriesIndices=o(a[Ee]))}var i=this[Y],a=this._componentsMap,s=[];d(t,function(t,e){null!=t&&(y.hasClass(e)?s.push(e):i[e]=null==i[e]?u.clone(t):u.merge(i[e],t,!0))}),y.topologicalTravel(s,y.getAllClassMainTypes(),e,this)},getOption:function(){var t=u.clone(this[Y]);return d(t,function(e,i){if(y.hasClass(i)){for(var e=c.normalizeToArray(e),n=e[Ne]-1;n>=0;n--)c.isIdInner(e[n])&&e[Oe](n,1);t[i]=e}}),delete t[x],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap[t];return i?i[e||0]:void 0},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,r=t.name,a=this._componentsMap[e];if(!a||!a[Ne])return[];var o;if(null!=i)v(i)||(i=[i]),o=f(p(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var l=v(n);o=f(a,function(t){return l&&m(n,t.id)>=0||!l&&t.id===n})}else if(null!=r){var u=v(r);o=f(a,function(t){return u&&m(r,t.name)>=0||!u&&t.name===r})}return s(o,t)},findComponents:function(t){function e(t){var e=r+"Index",i=r+"Id",n=r+"Name";return t&&(t.hasOwnProperty(e)||t.hasOwnProperty(i)||t.hasOwnProperty(n))?{mainType:r,index:t[e],id:t[i],name:t[n]}:null}function i(e){return t[ye]?f(e,t[ye]):e}var n=t.query,r=t.mainType,a=e(n),o=a?this.queryComponents(a):this._componentsMap[r];return i(s(o,t))},eachComponent:function(t,e,i){var n=this._componentsMap;if(typeof t===Me)i=e,e=t,d(n,function(t,n){d(t,function(t,r){e.call(i,n,t,r)})});else if(u.isString(t))d(n[t],e,i);else if(g(t)){var r=this.findComponents(t);d(r,e,i)}},getSeriesByName:function(t){var e=this._componentsMap[Ee];return f(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap[Ee][t]},getSeriesByType:function(t){var e=this._componentsMap[Ee];return f(e,function(e){return e.subType===t})},getSeries:function(){return this._componentsMap[Ee].slice()},eachSeries:function(t,e){l(this),d(this._seriesIndices,function(i){var n=this._componentsMap[Ee][i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){d(this._componentsMap[Ee],t,e)},eachSeriesByType:function(t,e,i){l(this),d(this._seriesIndices,function(n){var r=this._componentsMap[Ee][n];r.subType===t&&e.call(i,r,n)},this)},eachRawSeriesByType:function(t,e,i){return d(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return l(this),u[ge](this._seriesIndices,t.componentIndex)<0},filterSeries:function(t,e){l(this);var i=f(this._componentsMap[Ee],t,e);this._seriesIndices=o(i)},restoreData:function(){var t=this._componentsMap;this._seriesIndices=o(t[Ee]);var e=[];d(t,function(t,i){e.push(i)}),y.topologicalTravel(e,y.getAllClassMainTypes(),function(e){d(t[e],function(t){t.restoreData()})})}});return u.mixin(b,t("./mixin/colorPalette")),b}),e("echarts/ExtensionAPI",[fi,hi],function(t){function e(t){i.each(n,function(e){this[e]=i.bind(t[e],t)},this)}var i=t(hi),n=["getDom","getZr",ni,ii,Ge,"isDisposed","on","off","getDataURL","getConnectedDataURL",ri,"getOption"];return e}),e("echarts/CoordinateSystem",[fi],function(){function t(){this._coordinateSystems=[]}var e={};return t[si]={constructor:t,create:function(t,i){var n=[];for(var r in e){var a=e[r][je](t,i);a&&(n=n[X](a))}this._coordinateSystems=n},update:function(t,e){for(var i=this._coordinateSystems,n=0;n<i[Ne];n++)i[n][Xe]&&i[n][Xe](t,e)}},t.register=function(t,i){e[t]=i},t.get=function(t){return e[t]},t}),e("echarts/model/OptionManager",[fi,hi,"../util/model","./Component"],function(t){function e(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function i(t,e,i){var n,r,a=[],o=[],l=t.timeline;if(t.baseOption&&(r=t.baseOption),(l||t.options)&&(r=r||{},a=(t.options||[]).slice()),t.media){r=r||{};var u=t.media;c(u,function(t){t&&t[Y]&&(t.query?o.push(t):n||(n=t))})}return r||(r=t),r.timeline||(r.timeline=l),c([r][X](a)[X](s.map(o,function(t){return t[Y]})),function(t){c(e,function(e){e(t,i)})}),{baseOption:r,timelineOptions:a,mediaDefault:n,mediaList:o}}function n(t,e,i){var n={width:e,height:i,aspectratio:e/i},a=!0;return s.each(t,function(t,e){var i=e.match(p);if(i&&i[1]&&i[2]){var o=i[1],s=i[2][li]();r(n[s],t,o)||(a=!1)}}),a}function r(t,e,i){return"min"===i?t>=e:"max"===i?e>=t:t===e}function a(t,e){return t.join(",")===e.join(",")}function o(t,e){e=e||{},c(e,function(e,i){if(null!=e){var n=t[i];if(u.hasClass(i)){e=l.normalizeToArray(e),n=l.normalizeToArray(n);var r=l.mappingToExists(n,e);t[i]=d(r,function(t){return t[Y]&&t.exist?f(t.exist,t[Y],!0):t.exist||t[Y]
})}else t[i]=f(n,e,!0)}})}var s=t(hi),l=t("../util/model"),u=t("./Component"),c=s.each,h=s.clone,d=s.map,f=s.merge,p=/^(min|max)?(.+)$/;return e[si]={constructor:e,setOption:function(t,e){t=h(t,!0);var n=this._optionBackup,r=i.call(this,t,e,!n);this._newBaseOption=r.baseOption,n?(o(n.baseOption,r.baseOption),r.timelineOptions[Ne]&&(n.timelineOptions=r.timelineOptions),r.mediaList[Ne]&&(n.mediaList=r.mediaList),r.mediaDefault&&(n.mediaDefault=r.mediaDefault)):this._optionBackup=r},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=d(e.timelineOptions,h),this._mediaList=d(e.mediaList,h),this._mediaDefault=h(e.mediaDefault),this._currentMediaIndices=[],h(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i[Ne]){var n=t[U]("timeline");n&&(e=h(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(){var t=this._api[ni](),e=this._api[ii](),i=this._mediaList,r=this._mediaDefault,o=[],s=[];if(!i[Ne]&&!r)return s;for(var l=0,u=i[Ne];u>l;l++)n(i[l].query,t,e)&&o.push(l);return!o[Ne]&&r&&(o=[-1]),o[Ne]&&!a(o,this._currentMediaIndices)&&(s=d(o,function(t){return h(-1===t?r[Y]:i[t][Y])})),this._currentMediaIndices=o,s}},e}),e("echarts/model/Component",[fi,"./Model",hi,"../util/component","../util/clazz","../util/layout","./mixin/boxLayout"],function(t){function e(t){var e=[];return n.each(l.getClassesByMainType(t),function(t){r.apply(e,t[si].dependencies||[])}),n.map(e,function(t){return o.parseClassType(t).main})}var i=t("./Model"),n=t(hi),r=Array[si].push,a=t("../util/component"),o=t("../util/clazz"),s=t("../util/layout"),l=i[He]({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,init:function(){this[q](this[Y],this[W])},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,r=i?s.getLayoutParams(t):{},a=e.getTheme();n.merge(t,a.get(this.mainType)),n.merge(t,this.getDefaultOption()),i&&s.mergeLayoutParam(t,r,i)},mergeOption:function(t){n.merge(this[Y],t,!0);var e=this.layoutMode;e&&s.mergeLayoutParam(this[Y],t,e)},optionUpdated:function(){},getDefaultOption:function(){if(!this.hasOwnProperty("__defaultOption")){for(var t=[],e=this.constructor;e;){var i=e[si].defaultOption;i&&t.push(i),e=e.superClass}for(var r={},a=t[Ne]-1;a>=0;a--)r=n.merge(r,t[a],!0);this.__defaultOption=r}return this.__defaultOption}});return o.enableClassExtend(l,function(t,e,i,r){n[He](this,r),this.uid=a.getUID("componentModel")}),o.enableClassManagement(l,{registerWhenExtend:!0}),a.enableSubTypeDefaulter(l),a.enableTopologicalTravel(l,e),n.mixin(l,t("./mixin/boxLayout")),l}),e("echarts/model/Series",[fi,hi,"../util/format","../util/model","./Component","./mixin/colorPalette",di],function(t){var e=t(hi),i=t("../util/format"),n=t("../util/model"),r=t("./Component"),a=t("./mixin/colorPalette"),o=t(di),s=i.encodeHTML,l=i.addCommas,u=r[He]({type:"series.__base__",seriesIndex:0,coordinateSystem:null,defaultOption:null,legendDataProvider:null,visualColorAccessPath:"itemStyle.normal.color",init:function(t,e,i){this[Ie]=this.componentIndex,this[q](t,i),this._dataBeforeProcessed=this.getInitialData(t,i),this._data=this._dataBeforeProcessed.cloneShallow()},mergeDefaultAndTheme:function(t,i){e.merge(t,i.getTheme().get(this.subType)),e.merge(t,this.getDefaultOption()),n.defaultEmphasis(t.label,n.LABEL_OPTIONS),this.fillDataTextStyle(t.data)},mergeOption:function(t,i){t=e.merge(this[Y],t,!0),this.fillDataTextStyle(t.data);var n=this.getInitialData(t,i);n&&(this._data=n,this._dataBeforeProcessed=n.cloneShallow())},fillDataTextStyle:function(t){if(t)for(var e=0;e<t[Ne];e++)t[e]&&t[e].label&&n.defaultEmphasis(t[e].label,n.LABEL_OPTIONS)},getInitialData:function(){},getData:function(t){return null==t?this._data:this._data.getLinkedData(t)},setData:function(t){this._data=t},getRawData:function(){return this._dataBeforeProcessed},coordDimToDataDim:function(t){return[t]},dataDimToCoordDim:function(t){return t},getBaseAxis:function(){var t=this[fe];return t&&t[F]&&t[F]()},formatTooltip:function(t,i){var n=this._data,r=this[H](t),a=e[Se](r)?e.map(r,l).join(", "):l(r),o=n[G](t),u=n[Z](t,"color"),c='<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:'+u+'"></span>',h=this.name;return"\x00-"===h&&(h=""),i?c+s(this.name)+" : "+a:(h&&s(h)+"<br />")+c+(o?s(o)+" : "+a:a)},ifEnableAnimation:function(){if(o.node)return!1;var t=this[N](B);return t&&this[qe]().count()>this[N]("animationThreshold")&&(t=!1),t},restoreData:function(){this._data=this._dataBeforeProcessed.cloneShallow()},getColorFromPalette:function(t,e){var i=this[W],n=a.getColorFromPalette.call(this,t,e);return n||(n=i.getColorFromPalette(t,e)),n},getAxisTooltipDataIndex:null});return e.mixin(u,n.dataFormatMixin),e.mixin(u,a),u}),e("echarts/view/Component",[fi,"zrender/container/Group","../util/component","../util/clazz"],function(t){var e=t("zrender/container/Group"),i=t("../util/component"),n=t("../util/clazz"),r=function(){this.group=new e,this.uid=i.getUID("viewComponent")};r[si]={constructor:r,init:function(){},render:function(){},dispose:function(){}};var a=r[si];return a.updateView=a.updateLayout=a.updateVisual=function(){},n.enableClassExtend(r),n.enableClassManagement(r,{registerWhenExtend:!0}),r}),e("echarts/view/Chart",[fi,"zrender/container/Group","../util/component","../util/clazz"],function(t){function e(){this.group=new r,this.uid=a.getUID("viewChart")}function i(t,e){if(t&&(t[Be](e),"group"===t.type))for(var n=0;n<t.childCount();n++)i(t.childAt(n),e)}function n(t,e,n){var r=e&&e[ke],a=e&&e.name;if(null!=r)for(var o=r instanceof Array?r:[r],s=0,l=o[Ne];l>s;s++)i(t[O](o[s]),n);else if(a)for(var u=a instanceof Array?a:[a],s=0,l=u[Ne];l>s;s++){var r=t[R](u[s]);i(t[O](r),n)}else t.eachItemGraphicEl(function(t){i(t,n)})}var r=t("zrender/container/Group"),a=t("../util/component"),o=t("../util/clazz");e[si]={type:"chart",init:function(){},render:function(){},highlight:function(t,e,i,r){n(t[qe](),r,E)},downplay:function(t,e,i,r){n(t[qe](),r,V)},remove:function(){this.group[ve]()},dispose:function(){}};var s=e[si];return s.updateView=s.updateLayout=s.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},o.enableClassExtend(e),o.enableClassManagement(e,{registerWhenExtend:!0}),e}),e("echarts/util/graphic",[fi,hi,"zrender/tool/path","zrender/graphic/Path",ci,"zrender/core/matrix",ui,"zrender/graphic/Gradient","zrender/container/Group","zrender/graphic/Image","zrender/graphic/Text","zrender/graphic/shape/Circle","zrender/graphic/shape/Sector","zrender/graphic/shape/Ring","zrender/graphic/shape/Polygon","zrender/graphic/shape/Polyline","zrender/graphic/shape/Rect","zrender/graphic/shape/Line","zrender/graphic/shape/BezierCurve","zrender/graphic/shape/Arc","zrender/graphic/CompoundPath","zrender/graphic/LinearGradient","zrender/graphic/RadialGradient",z],function(t){function e(t){return null!=t&&"none"!=t}function i(t){return typeof t===oi?y.lift(t,-.1):t}function n(t){if(t.__hoverStlDirty){var n=t.style[P],r=t.style.fill,a=t.__hoverStl;a.fill=a.fill||(e(r)?i(r):null),a[P]=a[P]||(e(n)?i(n):null);var o={};for(var s in a)a.hasOwnProperty(s)&&(o[s]=t.style[s]);t.__normalStl=o,t.__hoverStlDirty=!1}}function r(t){t.__isHover||(n(t),t.useHoverLayer?t.__zr&&t.__zr.addHover(t,t.__hoverStl):(t[Le](t.__hoverStl),t.z2+=1),t.__isHover=!0)}function a(t){if(t.__isHover){var e=t.__normalStl;t.useHoverLayer?t.__zr&&t.__zr.removeHover(t):(e&&t[Le](e),t.z2-=1),t.__isHover=!1}}function o(t){"group"===t.type?t[Ae](function(t){"group"!==t.type&&r(t)}):r(t)}function s(t){"group"===t.type?t[Ae](function(t){"group"!==t.type&&a(t)}):a(t)}function l(t,e){t.__hoverStl=t.hoverStyle||e||{},t.__hoverStlDirty=!0,t.__isHover&&n(t)}function u(){!this.__isEmphasis&&o(this)}function c(){!this.__isEmphasis&&s(this)}function h(){this.__isEmphasis=!0,o(this)}function d(){this.__isEmphasis=!1,s(this)}function f(t,e,i,n,r,a){typeof r===Me&&(a=r,r=null);var o=n&&(n.ifEnableAnimation?n.ifEnableAnimation():n[N](B));if(o){var s=t?"Update":"",l=n&&n[N]("animationDuration"+s),u=n&&n[N]("animationEasing"+s),c=n&&n[N]("animationDelay"+s);typeof c===Me&&(c=c(r)),l>0?e.animateTo(i,l,c||0,u,a):(e.attr(i),a&&a())}else e.attr(i),a&&a()}var p=t(hi),v=t("zrender/tool/path"),m=Math.round,g=t("zrender/graphic/Path"),y=t(ci),_=t("zrender/core/matrix"),x=t(ui),b=(t("zrender/graphic/Gradient"),{});return b.Group=t("zrender/container/Group"),b.Image=t("zrender/graphic/Image"),b.Text=t("zrender/graphic/Text"),b.Circle=t("zrender/graphic/shape/Circle"),b.Sector=t("zrender/graphic/shape/Sector"),b.Ring=t("zrender/graphic/shape/Ring"),b[D]=t("zrender/graphic/shape/Polygon"),b.Polyline=t("zrender/graphic/shape/Polyline"),b.Rect=t("zrender/graphic/shape/Rect"),b.Line=t("zrender/graphic/shape/Line"),b.BezierCurve=t("zrender/graphic/shape/BezierCurve"),b.Arc=t("zrender/graphic/shape/Arc"),b.CompoundPath=t("zrender/graphic/CompoundPath"),b.LinearGradient=t("zrender/graphic/LinearGradient"),b.RadialGradient=t("zrender/graphic/RadialGradient"),b.BoundingRect=t(z),b.extendShape=function(t){return g[He](t)},b.extendPath=function(t,e){return v.extendFromString(t,e)},b.makePath=function(t,e,i,n){var r=v.createFromString(t,e),a=r[le]();if(i){var o=a.width/a[Ye];if(n===ae){var s,l=i[Ye]*o;l<=i.width?s=i[Ye]:(l=i.width,s=l/o);var u=i.x+i.width/2,c=i.y+i[Ye]/2;i.x=u-l/2,i.y=c-s/2,i.width=l,i[Ye]=s}this.resizePath(r,i)}return r},b.mergePath=v.mergePath,b.resizePath=function(t,e){if(t[k]){var i=t[le](),n=i.calculateTransform(e);t[k](n)}},b.subPixelOptimizeLine=function(t){var e=b.subPixelOptimize,i=t.shape,n=t.style[I];return m(2*i.x1)===m(2*i.x2)&&(i.x1=i.x2=e(i.x1,n,!0)),m(2*i.y1)===m(2*i.y2)&&(i.y1=i.y2=e(i.y1,n,!0)),t},b.subPixelOptimizeRect=function(t){var e=b.subPixelOptimize,i=t.shape,n=t.style[I],r=i.x,a=i.y,o=i.width,s=i[Ye];return i.x=e(i.x,n,!0),i.y=e(i.y,n,!0),i.width=Math.max(e(r+o,n,!1)-i.x,0===o?0:1),i[Ye]=Math.max(e(a+s,n,!1)-i.y,0===s?0:1),t},b.subPixelOptimize=function(t,e,i){var n=m(2*t);return(n+m(e))%2===0?n/2:(n+(i?1:-1))/2},b[A]=function(t,e){"group"===t.type?t[Ae](function(t){"group"!==t.type&&l(t,e)}):l(t,e),t.on(Re,u).on(ze,c),t.on(E,h).on(V,d)},b.setText=function(t,e,i){var n=e[N](re)||L,r=n[ge](L)>=0?"white":i,a=e[ri](de);p[He](t,{textDistance:e[N]("distance")||5,textFont:a[ce](),textPosition:n,textFill:a[ue]()||r})},b.updateProps=function(t,e,i,n,r){f(!0,t,e,i,n,r)},b.initProps=function(t,e,i,n,r){f(!1,t,e,i,n,r)},b.getTransform=function(t,e){for(var i=_.identity([]);t&&t!==e;)_.mul(i,t.getLocalTransform(),i),t=t[C];return i},b[k]=function(t,e,i){return i&&(e=_.invert([],e)),x[k]([],t,e)},b.transformDirection=function(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-r:t===$e?r:0];return a=b[k](a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?$e:"top"},b.groupTransition=function(t,e,i){function n(t){var e={};return t[Ae](function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}function r(t){var e={position:x.clone(t[re]),rotation:t[T]};return t.shape&&(e.shape=p[He]({},t.shape)),e}if(t&&e){var a=n(t);e[Ae](function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=r(t);t.attr(r(e)),b.updateProps(t,n,i,t[ke])}}})}},b}),e("zrender/zrender",[fi,"./core/guid","./core/env","./Handler","./Storage","./animation/Animation","./Painter"],function(t){function e(t){delete u[t]}var i=t("./core/guid"),n=t("./core/env"),r=t("./Handler"),a=t("./Storage"),o=t("./animation/Animation"),s=!n[ei],l={canvas:t("./Painter")},u={},c={};c.version="3.1.1",c.init=function(t,e){var n=new h(i(),t,e);return u[n.id]=n,n},c[Ve]=function(t){if(t)t[Ve]();else{for(var e in u)u[e][Ve]();u={}}return c},c.getInstance=function(t){return u[t]},c.registerPainter=function(t,e){l[t]=e};var h=function(t,e,i){i=i||{},this.dom=e,this.id=t;var u=this,c=new a,h=i.renderer;if(s){if(!l.vml)throw new Error("You need to require 'zrender/vml/vml' to support IE8");h="vml"}else h&&l[h]||(h="canvas");var d=new l[h](e,c,i);this[Ke]=c,this.painter=d,n.node||(this.handler=new r(d.getViewportRoot(),c,d)),this[B]=new o({stage:{update:function(){u._needsRefresh&&u.refreshImmediately(),u._needsRefreshHover&&u.refreshHoverImmediately()}}}),this[B].start(),this._needsRefresh;var f=c.delFromMap,p=c.addToMap;c.delFromMap=function(t){var e=c.get(t);f.call(c,t),e&&e.removeSelfFromZr(u)},c.addToMap=function(t){p.call(c,t),t.addSelfToZr(u)}};return h[si]={constructor:h,getId:function(){return this.id},add:function(t){this[Ke].addRoot(t),this._needsRefresh=!0},remove:function(t){this[Ke].delRoot(t),this._needsRefresh=!0},configLayer:function(t,e){this.painter.configLayer(t,e),this._needsRefresh=!0},refreshImmediately:function(){this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},refresh:function(){this._needsRefresh=!0},addHover:function(t,e){this.painter.addHover&&(this.painter.addHover(t,e),this.refreshHover())},removeHover:function(t){this.painter.removeHover&&(this.painter.removeHover(t),this.refreshHover())},clearHover:function(){this.painter.clearHover&&(this.painter.clearHover(),this.refreshHover())},refreshHover:function(){this._needsRefreshHover=!0},refreshHoverImmediately:function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.refreshHover()},resize:function(){this.painter[ai](),this.handler&&this.handler[ai]()},clearAnimation:function(){this[B].clear()},getWidth:function(){return this.painter[ni]()},getHeight:function(){return this.painter[ii]()},pathToImage:function(t,e,n){var r=i();return this.painter.pathToImage(r,t,e,n)},setCursorStyle:function(t){this.handler&&this.handler.setCursorStyle(t)},on:function(t,e,i){this.handler&&this.handler.on(t,e,i)},off:function(t,e){this.handler&&this.handler.off(t,e)},trigger:function(t,e){this.handler&&this.handler[Be](t,e)},clear:function(){this[Ke].delRoot(),this.painter.clear()},dispose:function(){this[B].stop(),this.clear(),this[Ke][Ve](),this.painter[Ve](),this.handler&&this.handler[Ve](),this[B]=this[Ke]=this.painter=this.handler=null,e(this.id)}},c}),e(hi,[fi],function(){function t(e){if("object"==typeof e&&null!==e){var i=e;if(e instanceof Array){i=[];for(var n=0,r=e[Ne];r>n;n++)i[n]=t(e[n])}else if(!w(e)&&!M(e)){i={};for(var a in e)e.hasOwnProperty(a)&&(i[a]=t(e[a]))}return i}return e}function e(i,n,r){if(!b(n)||!b(i))return r?t(n):i;for(var a in n)if(n.hasOwnProperty(a)){var o=i[a],s=n[a];!b(s)||!b(o)||y(s)||y(o)||M(s)||M(o)||w(s)||w(o)?!r&&a in i||(i[a]=t(n[a],!0)):e(o,s,r)}return i}function i(t,i){for(var n=t[0],r=1,a=t[Ne];a>r;r++)n=e(n,t[r],i);return n}function n(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function r(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function a(){return document[$]("canvas")}function o(){return L||(L=V.createCanvas()[J]("2d")),L}function s(t,e){if(t){if(t[ge])return t[ge](e);for(var i=0,n=t[Ne];n>i;i++)if(t[i]===e)return i}return-1}function l(t,e){function i(){}var n=t[si];i[si]=e[si],t[si]=new i;for(var r in n)t[si][r]=n[r];t[si].constructor=t,t.superClass=e}function u(t,e,i){t=si in t?t[si]:t,e=si in e?e[si]:e,r(t,e,i)}function c(t){return t?typeof t==oi?!1:typeof t[Ne]==_e:void 0}function h(t,e,i){if(t&&e)if(t.forEach&&t.forEach===k)t.forEach(e,i);else if(t[Ne]===+t[Ne])for(var n=0,r=t[Ne];r>n;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function d(t,e,i){if(t&&e){if(t.map&&t.map===R)return t.map(e,i);for(var n=[],r=0,a=t[Ne];a>r;r++)n.push(e.call(i,t[r],r,t));return n}}function f(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===O)return t.reduce(e,i,n);for(var r=0,a=t[Ne];a>r;r++)i=e.call(n,i,t[r],r,t);return i}}function p(t,e,i){if(t&&e){if(t[ye]&&t[ye]===D)return t[ye](e,i);for(var n=[],r=0,a=t[Ne];a>r;r++)e.call(i,t[r],r,t)&&n.push(t[r]);return n}}function v(t,e,i){if(t&&e)for(var n=0,r=t[Ne];r>n;n++)if(e.call(i,t[n],n,t))return t[n]}function m(t,e){var i=z.call(arguments,2);return function(){return t.apply(e,i[X](z.call(arguments)))}}function g(t){var e=z.call(arguments,1);return function(){return t.apply(this,e[X](z.call(arguments)))}}function y(t){return"[object Array]"===P.call(t)}function _(t){return typeof t===Me}function x(t){return"[object String]"===P.call(t)}function b(t){var e=typeof t;return e===Me||!!t&&"object"==e}function w(t){return!!A[P.call(t)]}function M(t){return t&&1===t.nodeType&&typeof t.nodeName==oi}function S(){for(var t=0,e=arguments[Ne];e>t;t++)if(null!=arguments[t])return arguments[t]}function T(){return Function.call.apply(z,arguments)}function C(t,e){if(!t)throw new Error(e)}var L,A={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1},P=Object[si].toString,I=Array[si],k=I.forEach,D=I[ye],z=I.slice,R=I.map,O=I.reduce,V={inherits:l,mixin:u,clone:t,merge:e,mergeAll:i,extend:n,defaults:r,getContext:o,createCanvas:a,indexOf:s,slice:T,find:v,isArrayLike:c,each:h,map:d,reduce:f,filter:p,bind:m,curry:g,isArray:y,isString:x,isObject:b,isFunction:_,isBuildInObject:w,isDom:M,retrieve:S,assert:C,noop:function(){}};return V}),e(ci,[fi],function(){function t(t){return t=Math.round(t),0>t?0:t>255?255:t}function e(t){return t=Math.round(t),0>t?0:t>360?360:t}function i(t){return 0>t?0:t>1?1:t}function n(e){return t(e[Ne]&&"%"===e.charAt(e[Ne]-1)?parseFloat(e)/100*255:parseInt(e,10))}function r(t){return i(t[Ne]&&"%"===t.charAt(t[Ne]-1)?parseFloat(t)/100:parseFloat(t))}function a(t,e,i){return 0>i?i+=1:i>1&&(i-=1),1>6*i?t+(e-t)*i*6:1>2*i?e:2>3*i?t+(e-t)*(2/3-i)*6:t}function o(t,e,i){return t+(e-t)*i}function s(t){if(t){t+="";var e=t[Te](/ /g,"")[li]();if(e in g)return g[e].slice();if("#"!==e.charAt(0)){var i=e[ge]("("),a=e[ge](")");if(-1!==i&&a+1===e[Ne]){var o=e.substr(0,i),s=e.substr(i+1,a-(i+1)).split(","),u=1;switch(o){case"rgba":if(4!==s[Ne])return;u=r(s.pop());case"rgb":if(3!==s[Ne])return;return[n(s[0]),n(s[1]),n(s[2]),u];case"hsla":if(4!==s[Ne])return;return s[3]=r(s[3]),l(s);case"hsl":if(3!==s[Ne])return;return l(s);default:return}}}else{if(4===e[Ne]){var c=parseInt(e.substr(1),16);if(!(c>=0&&4095>=c))return;return[(3840&c)>>4|(3840&c)>>8,240&c|(240&c)>>4,15&c|(15&c)<<4,1]}if(7===e[Ne]){var c=parseInt(e.substr(1),16);if(!(c>=0&&16777215>=c))return;return[(16711680&c)>>16,(65280&c)>>8,255&c,1]}}}}function l(e){var i=(parseFloat(e[0])%360+360)%360/360,n=r(e[1]),o=r(e[2]),s=.5>=o?o*(n+1):o+n-o*n,l=2*o-s,u=[t(255*a(l,s,i+1/3)),t(255*a(l,s,i)),t(255*a(l,s,i-1/3))];return 4===e[Ne]&&(u[3]=e[3]),u}function u(t){if(t){var e,i,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(n,r,a),s=Math.max(n,r,a),l=s-o,u=(s+o)/2;if(0===l)e=0,i=0;else{i=.5>u?l/(s+o):l/(2-s-o);var c=((s-n)/6+l/2)/l,h=((s-r)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-h:r===s?e=1/3+c-d:a===s&&(e=2/3+h-c),0>e&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function c(t,e){var i=s(t);if(i){for(var n=0;3>n;n++)i[n]=0>e?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0;return m(i,4===i[Ne]?"rgba":"rgb")}}function h(t){var e=s(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function d(e,i,n){if(i&&i[Ne]&&e>=0&&1>=e){n=n||[0,0,0,0];var r=e*(i[Ne]-1),a=Math.floor(r),s=Math.ceil(r),l=i[a],u=i[s],c=r-a;return n[0]=t(o(l[0],u[0],c)),n[1]=t(o(l[1],u[1],c)),n[2]=t(o(l[2],u[2],c)),n[3]=t(o(l[3],u[3],c)),n}}function f(e,n,r){if(n&&n[Ne]&&e>=0&&1>=e){var a=e*(n[Ne]-1),l=Math.floor(a),u=Math.ceil(a),c=s(n[l]),h=s(n[u]),d=a-l,f=m([t(o(c[0],h[0],d)),t(o(c[1],h[1],d)),t(o(c[2],h[2],d)),i(o(c[3],h[3],d))],"rgba");return r?{color:f,leftIndex:l,rightIndex:u,value:a}:f}}function p(t,i,n,a){return t=s(t),t?(t=u(t),null!=i&&(t[0]=e(i)),null!=n&&(t[1]=r(n)),null!=a&&(t[2]=r(a)),m(l(t),"rgba")):void 0}function v(t,e){return t=s(t),t&&null!=e?(t[3]=i(e),m(t,"rgba")):void 0}function m(t,e){var i=t[0]+","+t[1]+","+t[2];return("rgba"===e||"hsva"===e||"hsla"===e)&&(i+=","+t[3]),e+"("+i+")"}var g={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};return{parse:s,lift:c,toHex:h,fastMapToColor:d,mapToColor:f,modifyHSL:p,modifyAlpha:v,stringify:m}}),e("zrender/mixin/Eventful",[fi],function(){var t=Array[si].slice,e=function(){this._$handlers={}};return e[si]={constructor:e,one:function(t,e,i){var n=this._$handlers;if(!e||!t)return this;n[t]||(n[t]=[]);for(var r=0;r<n[t][Ne];r++)if(n[t][r].h===e)return this;return n[t].push({h:e,one:!0,ctx:i||this}),this},on:function(t,e,i){var n=this._$handlers;if(!e||!t)return this;n[t]||(n[t]=[]);for(var r=0;r<n[t][Ne];r++)if(n[t][r].h===e)return this;return n[t].push({h:e,one:!1,ctx:i||this}),this},isSilent:function(t){var e=this._$handlers;return e[t]&&e[t][Ne]},off:function(t,e){var i=this._$handlers;if(!t)return this._$handlers={},this;if(e){if(i[t]){for(var n=[],r=0,a=i[t][Ne];a>r;r++)i[t][r].h!=e&&n.push(i[t][r]);i[t]=n}i[t]&&0===i[t][Ne]&&delete i[t]}else delete i[t];return this},trigger:function(e){if(this._$handlers[e]){var i=arguments,n=i[Ne];n>3&&(i=t.call(i,1));for(var r=this._$handlers[e],a=r[Ne],o=0;a>o;){switch(n){case 1:r[o].h.call(r[o].ctx);break;case 2:r[o].h.call(r[o].ctx,i[1]);break;case 3:r[o].h.call(r[o].ctx,i[1],i[2]);break;default:r[o].h.apply(r[o].ctx,i)}r[o].one?(r[Oe](o,1),a--):o++}}return this},triggerWithContext:function(e){if(this._$handlers[e]){var i=arguments,n=i[Ne];n>4&&(i=t.call(i,1,i[Ne]-1));for(var r=i[i[Ne]-1],a=this._$handlers[e],o=a[Ne],s=0;o>s;){switch(n){case 1:a[s].h.call(r);break;case 2:a[s].h.call(r,i[1]);break;case 3:a[s].h.call(r,i[1],i[2]);break;default:a[s].h.apply(r,i)}a[s].one?(a[Oe](s,1),o--):s++}}return this}},e}),e("zrender/core/timsort",[],function(){function t(t){for(var e=0;t>=l;)e|=1&t,t>>=1;return t+e}function e(t,e,n,r){var a=e+1;if(a===n)return 1;if(r(t[a++],t[e])<0){for(;n>a&&r(t[a],t[a-1])<0;)a++;i(t,e,a)}else for(;n>a&&r(t[a],t[a-1])>=0;)a++;return a-e}function i(t,e,i){for(i--;i>e;){var n=t[e];t[e++]=t[i],t[i--]=n}}function n(t,e,i,n,r){for(n===e&&n++;i>n;n++){for(var a,o=t[n],s=e,l=n;l>s;)a=s+l>>>1,r(o,t[a])<0?l=a:s=a+1;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=o}}function r(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])>0){for(s=n-r;s>l&&a(t,e[i+r+l])>0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;s>l&&a(t,e[i+r-l])<=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}for(o++;l>o;){var c=o+(l-o>>>1);a(t,e[i+c])>0?o=c+1:l=c}return l}function a(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])<0){for(s=r+1;s>l&&a(t,e[i+r-l])<0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}else{for(s=n-r;s>l&&a(t,e[i+r+l])>=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;l>o;){var c=o+(l-o>>>1);a(t,e[i+c])<0?l=c:o=c+1}return l}function o(t,e){function i(t,e){d[y]=t,f[y]=e,y+=1}function n(){for(;y>1;){var t=y-2;if(t>=1&&f[t-1]<=f[t]+f[t+1]||t>=2&&f[t-2]<=f[t]+f[t-1])f[t-1]<f[t+1]&&t--;else if(f[t]>f[t+1])break;s(t)}}function o(){for(;y>1;){var t=y-2;t>0&&f[t-1]<f[t+1]&&t--,s(t)}}function s(i){var n=d[i],o=f[i],s=d[i+1],u=f[i+1];f[i]=o+u,i===y-3&&(d[i+1]=d[i+2],f[i+1]=f[i+2]),y--;var c=a(t[s],t,n,o,0,e);n+=c,o-=c,0!==o&&(u=r(t[n+o-1],t,s,u,u-1,e),0!==u&&(u>=o?l(n,o,s,u):h(n,o,s,u)))}function l(i,n,o,s){var l=0;for(l=0;n>l;l++)_[l]=t[i+l];var c=0,h=o,d=i;if(t[d++]=t[h++],0!==--s){if(1===n){for(l=0;s>l;l++)t[d+l]=t[h+l];return void(t[d+s]=_[c])}for(var f,v,m,g=p;;){f=0,v=0,m=!1;do if(e(t[h],_[c])<0){if(t[d++]=t[h++],v++,f=0,0===--s){m=!0;break}}else if(t[d++]=_[c++],f++,v=0,1===--n){m=!0;break}while(g>(f|v));if(m)break;do{if(f=a(t[h],_,c,n,0,e),0!==f){for(l=0;f>l;l++)t[d+l]=_[c+l];if(d+=f,c+=f,n-=f,1>=n){m=!0;break}}if(t[d++]=t[h++],0===--s){m=!0;break}if(v=r(_[c],t,h,s,0,e),0!==v){for(l=0;v>l;l++)t[d+l]=t[h+l];if(d+=v,h+=v,s-=v,0===s){m=!0;break}}if(t[d++]=_[c++],1===--n){m=!0;break}g--}while(f>=u||v>=u);if(m)break;0>g&&(g=0),g+=2}if(p=g,1>p&&(p=1),1===n){for(l=0;s>l;l++)t[d+l]=t[h+l];t[d+s]=_[c]}else{if(0===n)throw new Error;for(l=0;n>l;l++)t[d+l]=_[c+l]}}else for(l=0;n>l;l++)t[d+l]=_[c+l]}function h(i,n,o,s){var l=0;for(l=0;s>l;l++)_[l]=t[o+l];var c=i+n-1,h=s-1,d=o+s-1,f=0,v=0;if(t[d--]=t[c--],0!==--n){if(1===s){for(d-=n,c-=n,v=d+1,f=c+1,l=n-1;l>=0;l--)t[v+l]=t[f+l];return void(t[d]=_[h])}for(var m=p;;){var g=0,y=0,x=!1;do if(e(_[h],t[c])<0){if(t[d--]=t[c--],g++,y=0,0===--n){x=!0;break}}else if(t[d--]=_[h--],y++,g=0,1===--s){x=!0;break}while(m>(g|y));if(x)break;do{if(g=n-a(_[h],t,i,n,n-1,e),0!==g){for(d-=g,c-=g,n-=g,v=d+1,f=c+1,l=g-1;l>=0;l--)t[v+l]=t[f+l];if(0===n){x=!0;break}}if(t[d--]=_[h--],1===--s){x=!0;break}if(y=s-r(t[c],_,0,s,s-1,e),0!==y){for(d-=y,h-=y,s-=y,v=d+1,f=h+1,l=0;y>l;l++)t[v+l]=_[f+l];if(1>=s){x=!0;break}}if(t[d--]=t[c--],0===--n){x=!0;break}m--}while(g>=u||y>=u);if(x)break;0>m&&(m=0),m+=2}if(p=m,1>p&&(p=1),1===s){for(d-=n,c-=n,v=d+1,f=c+1,l=n-1;l>=0;l--)t[v+l]=t[f+l];t[d]=_[h]}else{if(0===s)throw new Error;for(f=d-(s-1),l=0;s>l;l++)t[f+l]=_[l]}}else for(f=d-(s-1),l=0;s>l;l++)t[f+l]=_[l]}var d,f,p=u,v=0,m=c,g=0,y=0;v=t[Ne],2*c>v&&(m=v>>>1);var _=[];g=120>v?5:1542>v?10:119151>v?19:40,d=[],f=[],this.mergeRuns=n,this.forceMergeRuns=o,this.pushRun=i}function s(i,r,a,s){a||(a=0),s||(s=i[Ne]);var u=s-a;if(!(2>u)){var c=0;if(l>u)return c=e(i,a,s,r),void n(i,a,s,a+c,r);var h=new o(i,r),d=t(u);do{if(c=e(i,a,s,r),d>c){var f=u;f>d&&(f=d),n(i,a,a+f,a+c,r),c=f}h.pushRun(a,c),h.mergeRuns(),u-=c,a+=c}while(0!==u);h.forceMergeRuns()}}var l=32,u=7,c=256;return s}),e("echarts/loading/default",[fi,"../util/graphic",hi],function(t){var e=t("../util/graphic"),i=t(hi),n=Math.PI;return function(t,r){r=r||{},i[Ze](r,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var a=new e.Rect({style:{fill:r.maskColor},zlevel:r[Ce],z:1e4}),o=new e.Arc({shape:{startAngle:-n/2,endAngle:-n/2+.1,r:10},style:{stroke:r.color,lineCap:"round",lineWidth:5},zlevel:r[Ce],z:10001}),s=new e.Rect({style:{fill:"none",text:r.text,textPosition:"right",textDistance:10,textFill:r.textColor},zlevel:r[Ce],z:10001});o.animateShape(!0).when(1e3,{endAngle:3*n/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:3*n/2}).delay(300).start("circularInOut");var l=new e.Group;return l.add(o),l.add(s),l.add(a),l[ai]=function(){var e=t[ni]()/2,i=t[ii]()/2;o[S]({cx:e,cy:i});var n=o.shape.r;s[S]({x:e-n,y:i-n,width:2*n,height:2*n}),a[S]({x:0,y:0,width:t[ni](),height:t[ii]()})},l[ai](),l}}),e("echarts/visual/seriesColor",[fi,"zrender/graphic/Gradient"],function(t){var e=t("zrender/graphic/Gradient");return function(t){function i(i){var n=(i.visualColorAccessPath||"itemStyle.normal.color").split("."),r=i[qe](),a=i.get(n)||i.getColorFromPalette(i.get("name"));r.setVisual("color",a),t.isSeriesFiltered(i)||(typeof a!==Me||a instanceof e||r.each(function(t){r.setItemVisual(t,"color",a(i[Pe](t)))}),r.each(function(t){var e=r[M](t),i=e.get(n,!0);null!=i&&r.setItemVisual(t,"color",i)}))}t.eachRawSeries(i)}}),e("echarts/preprocessor/backwardCompat",[fi,hi,"./helper/compatStyle"],function(t){function e(t,e){e=e.split(",");for(var i=t,n=0;n<e[Ne]&&(i=i&&i[e[n]],null!=i);n++);return i}function i(t,e,i,n){e=e.split(",");for(var r,a=t,o=0;o<e[Ne]-1;o++)r=e[o],null==a[r]&&(a[r]={}),a=a[r];(n||null==a[e[o]])&&(a[e[o]]=i)}function n(t){u(o,function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])})}var r=t(hi),a=t("./helper/compatStyle"),o=[["x","left"],["y","top"],["x2","right"],["y2",$e]],s=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],l=["bar","boxplot","candlestick","chord","effectScatter","funnel","gauge","lines","graph","heatmap","line","map","parallel","pie","radar","sankey","scatter","treemap"],u=r.each;return function(t){u(t[Ee],function(t){if(r[We](t)){var o=t.type;if(a(t),("pie"===o||"gauge"===o)&&null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===o){var s=e(t,"pointer.color");null!=s&&i(t,"itemStyle.normal.color",s)}for(var u=0;u<l[Ne];u++)if(l[u]===t.type){n(t);break}}}),t.dataRange&&(t.visualMap=t.dataRange),u(s,function(e){var i=t[e];i&&(r[Se](i)||(i=[i]),u(i,function(t){n(t)}))})}}),e("echarts/data/List",[fi,"../model/Model","./DataDiffer",hi,"../util/model"],function(t){function e(t){return c[Se](t)||(t=[t]),t}function i(t,e){var i=t[w],n=new v(c.map(i,t.getDimensionInfo,t),t.hostModel);p(n,t);for(var r=n._storage={},a=t._storage,o=0;o<i[Ne];o++){var s=i[o],l=a[s];
    r[s]=c[ge](e,s)>=0?new l.constructor(a[s][Ne]):a[s]}return n}var n=Q,r=typeof window===Q?global:window,a=typeof r.Float64Array===n?Array:r.Float64Array,o=typeof r.Int32Array===n?Array:r.Int32Array,s={"float":a,"int":o,ordinal:Array,number:Array,time:Array},l=t("../model/Model"),u=t("./DataDiffer"),c=t(hi),h=t("../util/model"),d=c[We],f=["stackedOn","hasItemOption","_nameList","_idList","_rawData"],p=function(t,e){c.each(f[X](e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods},v=function(t,e){t=t||["x","y"];for(var i={},n=[],r=0;r<t[Ne];r++){var a,o={};typeof t[r]===oi?(a=t[r],o={name:a,stackable:!1,type:"number"}):(o=t[r],a=o.name,o.type=o.type||_e),n.push(a),i[a]=o}this[w]=n,this._dimensionInfos=i,this.hostModel=e,this.dataType,this.indices=[],this._storage={},this._nameList=[],this._idList=[],this._optionModels=[],this.stackedOn=null,this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawData,this._extent},m=v[si];m.type="list",m.hasItemOption=!0,m.getDimension=function(t){return isNaN(t)||(t=this[w][t]||t),t},m.getDimensionInfo=function(t){return c.clone(this._dimensionInfos[this.getDimension(t)])},m.initData=function(t,e,i){t=t||[],this._rawData=t;var n=this._storage={},r=this.indices=[],a=this[w],o=t[Ne],l=this._dimensionInfos,u=[],c={};e=e||[];for(var d=0;d<a[Ne];d++){var f=l[a[d]],p=s[f.type];n[a[d]]=new p(o)}var v=this;i||(v.hasItemOption=!1),i=i||function(t,e,i,n){var r=h.getDataItemValue(t);return h.isDataItemOption(t)&&(v.hasItemOption=!0),h.converDataValue(r instanceof Array?r[n]:r,l[e])};for(var m=0;m<t[Ne];m++){for(var g=t[m],y=0;y<a[Ne];y++){var _=a[y],x=n[_];x[m]=i(g,_,m,y)}r.push(m)}for(var d=0;d<t[Ne];d++){e[d]||t[d]&&null!=t[d].name&&(e[d]=t[d].name);var b=e[d]||"",M=t[d]&&t[d].id;!M&&b&&(c[b]=c[b]||0,M=b,c[b]>0&&(M+="__ec__"+c[b]),c[b]++),M&&(u[d]=M)}this._nameList=e,this._idList=u},m.count=function(){return this.indices[Ne]},m.get=function(t,e,i){var n=this._storage,r=this.indices[e];if(null==r)return 0/0;var a=n[t]&&n[t][r];if(i){var o=this._dimensionInfos[t];if(o&&o.stackable)for(var s=this.stackedOn;s;){var l=s.get(t,e);(a>=0&&l>0||0>=a&&0>l)&&(a+=l),s=s.stackedOn}}return a},m.getValues=function(t,e,i){var n=[];c[Se](t)||(i=e,e=t,t=this[w]);for(var r=0,a=t[Ne];a>r;r++)n.push(this.get(t[r],e,i));return n},m.hasValue=function(t){for(var e=this[w],i=this._dimensionInfos,n=0,r=e[Ne];r>n;n++)if(i[e[n]].type!==b&&isNaN(this.get(e[n],t)))return!1;return!0},m[x]=function(t,e){t=this.getDimension(t);var i=this._storage[t],n=this.getDimensionInfo(t);e=n&&n.stackable&&e;var r,a=(this._extent||(this._extent={}))[t+!!e];if(a)return a;if(i){for(var o=1/0,s=-1/0,l=0,u=this.count();u>l;l++)r=this.get(t,l,e),o>r&&(o=r),r>s&&(s=r);return this._extent[t+!!e]=[o,s]}return[1/0,-1/0]},m.getSum=function(t,e){var i=this._storage[t],n=0;if(i)for(var r=0,a=this.count();a>r;r++){var o=this.get(t,r,e);isNaN(o)||(n+=o)}return n},m[ge]=function(t,e){var i=this._storage,n=i[t],r=this.indices;if(n)for(var a=0,o=r[Ne];o>a;a++){var s=r[a];if(n[s]===e)return a}return-1},m[R]=function(t){for(var e=this.indices,i=this._nameList,n=0,r=e[Ne];r>n;n++){var a=e[n];if(i[a]===t)return n}return-1},m.indexOfRawIndex=function(t){for(var e=this.indices,i=0,n=e[Ne]-1;n>=i;){var r=(i+n)/2|0;if(e[r]<t)i=r+1;else{if(!(e[r]>t))return r;n=r-1}}return-1},m.indexOfNearest=function(t,e,i){var n=this._storage,r=n[t];if(r){for(var a=Number.MAX_VALUE,o=-1,s=0,l=this.count();l>s;s++){var u=e-this.get(t,s,i),c=Math.abs(u);(a>c||c===a&&u>0)&&(a=c,o=s)}return o}return-1},m.getRawIndex=function(t){var e=this.indices[t];return null==e?-1:e},m.getRawDataItem=function(t){return this._rawData[this.getRawIndex(t)]},m[G]=function(t){return this._nameList[this.indices[t]]||""},m.getId=function(t){return this._idList[this.indices[t]]||this.getRawIndex(t)+""},m.each=function(t,i,n,r){typeof t===Me&&(r=n,n=i,i=t,t=[]),t=c.map(e(t),this.getDimension,this);var a=[],o=t[Ne],s=this.indices;r=r||this;for(var l=0;l<s[Ne];l++)switch(o){case 0:i.call(r,l);break;case 1:i.call(r,this.get(t[0],l,n),l);break;case 2:i.call(r,this.get(t[0],l,n),this.get(t[1],l,n),l);break;default:for(var u=0;o>u;u++)a[u]=this.get(t[u],l,n);a[u]=l,i.apply(r,a)}},m.filterSelf=function(t,i,n,r){typeof t===Me&&(r=n,n=i,i=t,t=[]),t=c.map(e(t),this.getDimension,this);var a=[],o=[],s=t[Ne],l=this.indices;r=r||this;for(var u=0;u<l[Ne];u++){var h;if(1===s)h=i.call(r,this.get(t[0],u,n),u);else{for(var d=0;s>d;d++)o[d]=this.get(t[d],u,n);o[d]=u,h=i.apply(r,o)}h&&a.push(l[u])}return this.indices=a,this._extent={},this},m[_]=function(t,e,i,n){typeof t===Me&&(n=i,i=e,e=t,t=[]);var r=[];return this.each(t,function(){r.push(e&&e.apply(this,arguments))},i,n),r},m.map=function(t,n,r,a){t=c.map(e(t),this.getDimension,this);var o=i(this,t),s=o.indices=this.indices,l=o._storage,u=[];return this.each(t,function(){var e=arguments[arguments[Ne]-1],i=n&&n.apply(this,arguments);if(null!=i){typeof i===_e&&(u[0]=i,i=u);for(var r=0;r<i[Ne];r++){var a=t[r],o=l[a],c=s[e];o&&(o[c]=i[r])}}},r,a),o},m.downSample=function(t,e,n,r){for(var a=i(this,[t]),o=this._storage,s=a._storage,l=this.indices,u=a.indices=[],c=[],h=[],d=Math.floor(1/e),f=s[t],p=this.count(),v=0;v<o[t][Ne];v++)s[t][v]=o[t][v];for(var v=0;p>v;v+=d){d>p-v&&(d=p-v,c[Ne]=d);for(var m=0;d>m;m++){var g=l[v+m];c[m]=f[g],h[m]=g}var y=n(c),g=h[r(c,y)||0];f[g]=y,u.push(g)}return a},m[M]=function(t){var e=this.hostModel;return t=this.indices[t],new l(this._rawData[t],e,e&&e[W])},m.diff=function(t){var e=this._idList,i=t&&t._idList;return new u(t?t.indices:[],this.indices,function(t){return i[t]||t+""},function(t){return e[t]||t+""})},m.getVisual=function(t){var e=this._visual;return e&&e[t]},m.setVisual=function(t,e){if(d(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},m.setLayout=function(t,e){if(d(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},m.getLayout=function(t){return this._layout[t]},m.getItemLayout=function(t){return this._itemLayouts[t]},m.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?c[He](this._itemLayouts[t]||{},e):e},m.clearItemLayouts=function(){this._itemLayouts[Ne]=0},m[Z]=function(t,e,i){var n=this._itemVisuals[t],r=n&&n[e];return null!=r||i?r:this.getVisual(e)},m.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{};if(this._itemVisuals[t]=n,d(e))for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);else n[e]=i},m.clearAllVisual=function(){this._visual={},this._itemVisuals=[]};var g=function(t){t[Ie]=this[Ie],t[ke]=this[ke],t.dataType=this.dataType};return m.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e[ke]=t,e.dataType=this.dataType,e[Ie]=i&&i[Ie],"group"===e.type&&e[Ae](g,e)),this._graphicEls[t]=e},m[O]=function(t){return this._graphicEls[t]},m.eachItemGraphicEl=function(t,e){c.each(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},m.cloneShallow=function(){var t=c.map(this[w],this.getDimensionInfo,this),e=new v(t,this.hostModel);return e._storage=this._storage,p(e,this),e.indices=this.indices.slice(),this._extent&&(e._extent=c[He]({},this._extent)),e},m.wrapMethod=function(t,e){var i=this[t];typeof i===Me&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t][X](c.slice(arguments)))})},m.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],m.CHANGABLE_METHODS=["filterSelf"],v}),e("echarts/model/Model",[fi,hi,"../util/clazz","./mixin/lineStyle","./mixin/areaStyle","./mixin/textStyle","./mixin/itemStyle"],function(t){function e(t,e,i,n){this.parentModel=e,this[W]=i,this[Y]=t,this.init&&(arguments[Ne]<=4?this.init(t,e,i,n):this.init.apply(this,arguments))}var i=t(hi),n=t("../util/clazz");e[si]={constructor:e,init:null,mergeOption:function(t){i.merge(this[Y],t,!0)},get:function(t,e){if(!t)return this[Y];typeof t===oi&&(t=t.split("."));for(var i=this[Y],n=this.parentModel,r=0;r<t[Ne]&&(!t[r]||(i=i&&"object"==typeof i?i[t[r]]:null,null!=i));r++);return null==i&&n&&!e&&(i=n.get(t)),i},getShallow:function(t,e){var i=this[Y],n=i&&i[t],r=this.parentModel;return null==n&&r&&!e&&(n=r[N](t)),n},getModel:function(t,i){var n=this.get(t,!0),r=this.parentModel,a=new e(n,i||r&&r[ri](t),this[W]);return a},isEmpty:function(){return null==this[Y]},restoreData:function(){},clone:function(){var t=this.constructor;return new t(i.clone(this[Y]))},setReadOnly:function(t){n.setReadOnly(this,t)}},n.enableClassExtend(e);var r=i.mixin;return r(e,t("./mixin/lineStyle")),r(e,t("./mixin/areaStyle")),r(e,t("./mixin/textStyle")),r(e,t("./mixin/itemStyle")),e}),e("echarts/util/number",[fi],function(){function t(t){return t[Te](/^\s+/,"")[Te](/\s+$/,"")}var e={},i=1e-4;return e[y]=function(t,e,i,n){var r=e[1]-e[0],a=i[1]-i[0];if(0===r)return 0===a?i[0]:(i[0]+i[1])/2;if(n)if(r>0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/r*a+i[0]},e[g]=function(e,i){switch(e){case ae:case oe:e="50%";break;case"left":case"top":e="0%";break;case"right":case $e:e="100%"}return typeof e===oi?t(e).match(/%$/)?parseFloat(e)/100*i:parseFloat(e):null==e?0/0:+e},e.round=function(t){return+(+t)[m](10)},e.asc=function(t){return t.sort(function(t,e){return t-e}),t},e.getPrecision=function(t){if(isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i},e.getPixelPrecision=function(t,e){var i=Math.log,n=Math.LN10,r=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n);return Math.max(-r+a,0)},e.MAX_SAFE_INTEGER=9007199254740991,e.remRadian=function(t){var e=2*Math.PI;return(t%e+e)%e},e.isRadianAroundZero=function(t){return t>-i&&i>t},e.parseDate=function(t){return t instanceof Date?t:new Date(typeof t===oi?new Date(t[Te](/-/g,"/"))-new Date("1970/01/01"):Math.round(t))},e.quantity=function(t){return Math.pow(10,Math.floor(Math.log(t)/Math.LN10))},e.nice=function(t,i){var n,r=e.quantity(t),a=t/r;return n=i?1.5>a?1:2.5>a?2:4>a?3:7>a?5:10:1>a?1:2>a?2:3>a?3:5>a?5:10,n*r},e}),e("echarts/util/format",[fi,hi,"./number"],function(t){function e(t){return isNaN(t)?"-":(t=(t+"").split("."),t[0][Te](/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t[Ne]>1?"."+t[1]:""))}function i(t){return t[li]()[Te](/-(.)/g,function(t,e){return e.toUpperCase()})}function n(t){var e=t[Ne];return typeof t===_e?[t,t,t,t]:2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function r(t){return String(t)[Te](/&/g,"&amp;")[Te](/</g,"&lt;")[Te](/>/g,"&gt;")[Te](/"/g,"&quot;")[Te](/'/g,"&#39;")}function a(t,e){return"{"+t+(null==e?"":e)+"}"}function o(t,e){u[Se](e)||(e=[e]);var i=e[Ne];if(!i)return"";for(var n=e[0].$vars,r=0;r<n[Ne];r++){var o=h[r];t=t[Te](a(o),a(o,0))}for(var s=0;i>s;s++)for(var l=0;l<n[Ne];l++)t=t[Te](a(h[l],s),e[s][n[l]]);return t}function s(t,e){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var i=c.parseDate(e),n=i.getFullYear(),r=i.getMonth()+1,a=i.getDate(),o=i.getHours(),s=i.getMinutes(),u=i.getSeconds();return t=t[Te]("MM",l(r))[li]()[Te]("yyyy",n)[Te]("yy",n%100)[Te]("dd",l(a))[Te]("d",a)[Te]("hh",l(o))[Te]("h",o)[Te]("mm",l(s))[Te]("m",s)[Te]("ss",l(u))[Te]("s",u)}function l(t){return 10>t?"0"+t:t}var u=t(hi),c=t("./number"),h=["a","b","c","d","e","f","g"];return{normalizeCssArray:n,addCommas:e,toCamelCase:i,encodeHTML:r,formatTpl:o,formatTime:s}}),e("zrender/core/matrix",[],function(){var t=typeof Float32Array===Q?Array:Float32Array,e={create:function(){var i=new t(6);return e.identity(i),i},identity:function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t},mul:function(t,e,i){var n=e[0]*i[0]+e[2]*i[1],r=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],o=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=r,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t},translate:function(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t},rotate:function(t,e,i){var n=e[0],r=e[2],a=e[4],o=e[1],s=e[3],l=e[5],u=Math.sin(i),c=Math.cos(i);return t[0]=n*c+o*u,t[1]=-n*u+o*c,t[2]=r*c+s*u,t[3]=-r*u+c*s,t[4]=c*a+u*l,t[5]=c*l-u*a,t},scale:function(t,e,i){var n=i[0],r=i[1];return t[0]=e[0]*n,t[1]=e[1]*r,t[2]=e[2]*n,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*r,t},invert:function(t,e){var i=e[0],n=e[2],r=e[4],a=e[1],o=e[3],s=e[5],l=i*o-a*n;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-o*r)*l,t[5]=(a*r-i*s)*l,t):null}};return e}),e(ui,[],function(){var t=typeof Float32Array===Q?Array:Float32Array,e={create:function(e,i){var n=new t(2);return null==e&&(e=0),null==i&&(i=0),n[0]=e,n[1]=i,n},copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:function(e){var i=new t(2);return i[0]=e[0],i[1]=e[1],i},set:function(t,e,i){return t[0]=e,t[1]=i,t},add:function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t},scaleAndAdd:function(t,e,i,n){return t[0]=e[0]+i[0]*n,t[1]=e[1]+i[1]*n,t},sub:function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t},len:function(t){return Math.sqrt(this.lenSquare(t))},lenSquare:function(t){return t[0]*t[0]+t[1]*t[1]},mul:function(t,e,i){return t[0]=e[0]*i[0],t[1]=e[1]*i[1],t},div:function(t,e,i){return t[0]=e[0]/i[0],t[1]=e[1]/i[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:function(t,e,i){return t[0]=e[0]*i,t[1]=e[1]*i,t},normalize:function(t,i){var n=e.len(i);return 0===n?(t[0]=0,t[1]=0):(t[0]=i[0]/n,t[1]=i[1]/n),t},distance:function(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))},distanceSquare:function(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])},negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:function(t,e,i,n){return t[0]=e[0]+n*(i[0]-e[0]),t[1]=e[1]+n*(i[1]-e[1]),t},applyTransform:function(t,e,i){var n=e[0],r=e[1];return t[0]=i[0]*n+i[2]*r+i[4],t[1]=i[1]*n+i[3]*r+i[5],t},min:function(t,e,i){return t[0]=Math.min(e[0],i[0]),t[1]=Math.min(e[1],i[1]),t},max:function(t,e,i){return t[0]=Math.max(e[0],i[0]),t[1]=Math.max(e[1],i[1]),t}};return e[Ne]=e.len,e.lengthSquare=e.lenSquare,e.dist=e.distance,e.distSquare=e.distanceSquare,e}),e("echarts/coord/cartesian/Grid",[fi,"exports","../../util/layout","../../coord/axisHelper",hi,"./Cartesian2D","./Axis2D","./GridModel","../../CoordinateSystem"],function(t){function e(t,e,i){return i[U]("grid",t.get("gridIndex"))===e}function i(t){var e,i=t.model,n=i.getFormattedLabels(),r=1,a=n[Ne];a>40&&(r=Math.ceil(a/40));for(var o=0;a>o;o+=r)if(!t.isLabelIgnored(o)){var s=i.getTextRect(n[o]);e?e.union(s):e=s}return e}function n(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this._model=t}function r(t,e){var i=t[K](),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}var a=t("../../util/layout"),o=t("../../coord/axisHelper"),s=t(hi),l=t("./Cartesian2D"),u=t("./Axis2D"),c=s.each,h=o.ifAxisCrossZero,d=o.niceScaleExtent;t("./GridModel");var f=n[si];return f.type="grid",f[pe]=function(){return this._rect},f[Xe]=function(t,e){function i(t){var e=n[t];for(var i in e){var r=e[i];if(r&&(r.type===v||!h(r)))return!0}return!1}var n=this._axesMap;this._updateScale(t,this._model),c(n.x,function(t){d(t,t.model)}),c(n.y,function(t){d(t,t.model)}),c(n.x,function(t){i("y")&&(t.onZero=!1)}),c(n.y,function(t){i("x")&&(t.onZero=!1)}),this[ai](this._model,e)},f[ai]=function(t,e){function n(){c(s,function(t){var e=t.isHorizontal(),i=e?[0,o.width]:[0,o[Ye]],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),r(t,e?o.x:o.y)})}var o=a[se](t.getBoxLayoutParams(),{width:e[ni](),height:e[ii]()});this._rect=o;var s=this._axesList;n(),t.get("containLabel")&&(c(s,function(t){if(!t.model.get("axisLabel.inside")){var e=i(t);if(e){var n=t.isHorizontal()?Ye:"width",r=t.model.get("axisLabel.margin");o[n]-=e[n]+r,"top"===t[re]?o.y+=e[Ye]+r:"left"===t[re]&&(o.x+=e.width+r)}}}),n())},f[p]=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)return i[n];return i[e]}},f.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}for(var n=0,r=this._coordsList;n<r[Ne];n++)if(r[n][p]("x").index===t||r[n][p]("y").index===e)return r[n]},f._initCartesian=function(t,i){function n(n){return function(l,c){if(e(l,t,i)){var h=l.get(re);"x"===n?("top"!==h&&h!==$e&&(h=$e),r[h]&&(h="top"===h?$e:"top")):("left"!==h&&"right"!==h&&(h="left"),r[h]&&(h="left"===h?"right":"left")),r[h]=!0;var d=new u(n,o.createScaleByModel(l),[0,0],l.get("type"),h),f=d.type===v;d.onBand=f&&l.get("boundaryGap"),d.inverse=l.get("inverse"),d.onZero=l.get("axisLine.onZero"),l.axis=d,d.model=l,d.grid=this,d.index=c,this._axesList.push(d),a[n][c]=d,s[n]++}}}var r={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};return i[Qe]("xAxis",n("x"),this),i[Qe]("yAxis",n("y"),this),s.x&&s.y?(this._axesMap=a,void c(a.x,function(t,e){c(a.y,function(i,n){var r="x"+e+"y"+n,a=new l(r);a.grid=this,this._coordsMap[r]=a,this._coordsList.push(a),a.addAxis(t),a.addAxis(i)},this)},this)):(this._axesMap={},void(this._axesList=[]))},f._updateScale=function(t,i){function n(t,e,i){c(i.coordDimToDataDim(e.dim),function(i){e.scale.unionExtent(t[x](i,e.scale.type!==b))})}s.each(this._axesList,function(t){t.scale.setExtent(1/0,-1/0)}),t[Ue](function(r){if("cartesian2d"===r.get(fe)){var a=r.get("xAxisIndex"),o=r.get("yAxisIndex"),s=t[U]("xAxis",a),l=t[U]("yAxis",o);if(!e(s,i,t)||!e(l,i,t))return;var u=this.getCartesian(a,o),c=r[qe](),h=u[p]("x"),d=u[p]("y");"list"===c.type&&(n(c,h,r),n(c,d,r))}},this)},n[je]=function(t,e){var i=[];return t[Qe]("grid",function(r,a){var o=new n(r,t,e);o.name="grid_"+a,o[ai](r,e),r[fe]=o,i.push(o)}),t[Ue](function(e){if("cartesian2d"===e.get(fe)){var n=e.get("xAxisIndex"),r=e.get("yAxisIndex"),a=t[U]("xAxis",n),o=i[a.get("gridIndex")];e[fe]=o.getCartesian(n,r)}}),i},n[w]=l[si][w],t("../../CoordinateSystem").register("cartesian2d",n),n}),e("echarts/chart/bar/BarSeries",[fi,"../../model/Series","../helper/createListFromArray"],function(t){var e=t("../../model/Series"),i=t("../helper/createListFromArray");return e[He]({type:"series.bar",dependencies:["grid","polar"],getInitialData:function(t,e){return i(t.data,this,e)},getMarkerPosition:function(t){var e=this[fe];if(e){var i=e[f](t,!0),n=this[qe](),r=n.getLayout("offset"),a=n.getLayout("size"),o=e[F]().isHorizontal()?0:1;return i[o]+=r+a/2,i}return[0/0,0/0]},brushSelector:"rect",defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,barMinHeight:0,itemStyle:{normal:{borderColor:"#fff",borderWidth:0},emphasis:{}}}})}),e("echarts/chart/bar/BarView",[fi,hi,d,"../../model/Model","./barItemStyle",h],function(t){function e(t,e){var i=t.width>0?1:-1,n=t[Ye]>0?1:-1;e=Math.min(e,Math.abs(t.width),Math.abs(t[Ye])),t.x+=i*e/2,t.y+=n*e/2,t.width-=i*e,t[Ye]-=n*e}var i=t(hi),n=t(d);return i[He](t("../../model/Model")[si],t("./barItemStyle")),t(h).extendChartView({type:"bar",render:function(t,e,i){var n=t.get(fe);return"cartesian2d"===n&&this._renderOnCartesian(t,e,i),this.group},_renderOnCartesian:function(t){function r(r,a){var s=o.getItemLayout(r),l=o[M](r).get(d)||0;e(s,l);var u=new n.Rect({shape:i[He]({},s)});if(h){var f=u.shape,p=c?Ye:"width",v={};f[p]=0,v[p]=s[p],n[a?"updateProps":"initProps"](u,{shape:v},t,r)}return u}var a=this.group,o=t[qe](),s=this._data,l=t[fe],u=l[F](),c=u.isHorizontal(),h=t.get(B),d=["itemStyle",V,"barBorderWidth"];o.diff(s).add(function(t){if(o.hasValue(t)){var e=r(t);o.setItemGraphicEl(t,e),a.add(e)}})[Xe](function(i,l){var u=s[O](l);if(!o.hasValue(i))return void a[Fe](u);u||(u=r(i,!0));var c=o.getItemLayout(i),h=o[M](i).get(d)||0;e(c,h),n.updateProps(u,{shape:c},t,i),o.setItemGraphicEl(i,u),a.add(u)})[Fe](function(e){var i=s[O](e);i&&(i.style.text="",n.updateProps(i,{shape:{width:0}},t,e,function(){a[Fe](i)}))}).execute(),this._updateStyle(t,o,c),this._data=o},_updateStyle:function(t,e,r){function a(t,e,i,r,a){n.setText(t,e,i),t.text=r,"outside"===t.textPosition&&(t.textPosition=a)}e.eachItemGraphicEl(function(o,s){var l=e[M](s),u=e[Z](s,"color"),c=e[Z](s,ne),h=e.getItemLayout(s),d=l[ri]("itemStyle.normal"),f=l[ri]("itemStyle.emphasis").getBarItemStyle();o[S]("r",d.get("barBorderRadius")||0),o.useStyle(i[Ze]({fill:u,opacity:c},d.getBarItemStyle()));var p=r?h[Ye]>0?$e:"top":h.width>0?"left":"right",v=l[ri]("label.normal"),m=l[ri]("label.emphasis"),g=o.style;v.get("show")?a(g,v,u,i.retrieve(t.getFormattedLabel(s,V),t[H](s)),p):g.text="",m.get("show")?a(f,m,u,i.retrieve(t.getFormattedLabel(s,E),t[H](s)),p):f.text="",n[A](o,f)})},remove:function(t){var e=this.group;t.get(B)?this._data&&this._data.eachItemGraphicEl(function(i){i.style.text="",n.updateProps(i,{shape:{width:0}},t,i[ke],function(){e[Fe](i)})}):e[ve]()}})}),e("echarts/layout/barGrid",[fi,hi,ie],function(t){function e(t){return t.get("stack")||"__ec_stack_"+t[Ie]}function i(t){var i={};r.each(t,function(t){var n=t[fe],r=n[F](),a=i[r.index]||{remainedWidth:r.getBandWidth(),autoWidthCount:0,categoryGap:"20%",gap:"30%",axis:r,stacks:{}},o=a.stacks;i[r.index]=a;var s=e(t);o[s]||a.autoWidthCount++,o[s]=o[s]||{width:0,maxWidth:0};var l=t.get("barWidth"),u=t.get("barMaxWidth"),c=t.get("barGap"),h=t.get("barCategoryGap");l&&!o[s].width&&(l=Math.min(a.remainedWidth,l),o[s].width=l,a.remainedWidth-=l),u&&(o[s].maxWidth=u),null!=c&&(a.gap=c),null!=h&&(a.categoryGap=h)});var n={};return r.each(i,function(t,e){n[e]={};var i=t.stacks,a=t.axis,s=a.getBandWidth(),l=o(t.categoryGap,s),u=o(t.gap,1),c=t.remainedWidth,h=t.autoWidthCount,d=(c-l)/(h+(h-1)*u);d=Math.max(d,0),r.each(i,function(t){var e=t.maxWidth;!t.width&&e&&d>e&&(e=Math.min(e,c),c-=e,t.width=e,h--)}),d=(c-l)/(h+(h-1)*u),d=Math.max(d,0);var f,p=0;r.each(i,function(t){t.width||(t.width=d),f=t,p+=t.width*(1+u)}),f&&(p-=f.width*u);var v=-p/2;r.each(i,function(t,i){n[e][i]=n[e][i]||{offset:v,width:t.width},v+=t.width*(1+u)})}),n}function n(t,n){var a=i(r[ye](n.getSeriesByType(t),function(t){return!n.isSeriesFiltered(t)&&t[fe]&&"cartesian2d"===t[fe].type})),o={};n.eachSeriesByType(t,function(t){var i=t[qe](),n=t[fe],r=n[F](),s=e(t),l=a[r.index][s],u=l.offset,h=l.width,d=n.getOtherAxis(r),f=t.get("barMinHeight")||0,p=r.onZero?d.toGlobalCoord(d[c](0)):d.getGlobalExtent()[0],v=n.dataToPoints(i,!0);o[s]=o[s]||[],i.setLayout({offset:u,size:h}),i.each(d.dim,function(t,e){if(!isNaN(t)){o[s][e]||(o[s][e]={p:p,n:p});var n,r,a,l,c=t>=0?"p":"n",m=v[e],g=o[s][e][c];d.isHorizontal()?(n=g,r=m[1]+u,a=m[0]-g,l=h,Math.abs(a)<f&&(a=(0>a?-1:1)*f),o[s][e][c]+=a):(n=m[0]+u,r=g,a=h,l=m[1]-g,Math.abs(l)<f&&(l=(0>=l?-1:1)*f),o[s][e][c]+=l),i.setItemLayout(e,{x:n,y:r,width:a,height:l})}},!0)},this)}var r=t(hi),a=t(ie),o=a[g];return n}),e("echarts/chart/line/LineSeries",[fi,"../helper/createListFromArray","../../model/Series"],function(t){var e=t("../helper/createListFromArray"),i=t("../../model/Series");return i[He]({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,i){return e(t.data,this,i)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,polarIndex:0,clipOverflow:!0,label:{normal:{position:"top"}},lineStyle:{normal:{width:2,type:"solid"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:!1,connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}})}),e("echarts/chart/line/LineView",[fi,hi,"../helper/SymbolDraw","../helper/Symbol","./lineAnimationDiff",d,"./poly","../../view/Chart"],function(t){function e(t,e){if(t[Ne]===e[Ne]){for(var i=0;i<t[Ne];i++){var n=t[i],r=e[i];if(n[0]!==r[0]||n[1]!==r[1])return}return!0}}function i(t){return typeof t===_e?t:t?.3:0}function n(t){var e=t.getGlobalExtent();if(t.onBand){var i=t.getBandWidth()/2-1,n=e[1]>e[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function r(t){return t>=0?1:-1}function a(t,e){var i=t[F](),n=t.getOtherAxis(i),a=i.onZero?0:n.scale[K]()[0],o=n.dim,s="x"===o||o===u?1:0;return e[_]([o],function(n,l){for(var u,c=e.stackedOn;c&&r(c.get(o,l))===r(n);){u=c;break}var h=[];return h[s]=e.get(i.dim,l),h[1-s]=u?u.get(o,l,!0):a,t[f](h)},!0)}function o(t,e){return null!=e[ke]?e[ke]:null!=e.name?t[R](e.name):void 0}function s(t,e,i){var r=n(t[p]("x")),a=n(t[p]("y")),o=t[F]().isHorizontal(),s=Math.min(r[0],r[1]),l=Math.min(a[0],a[1]),u=Math.max(r[0],r[1])-s,c=Math.max(a[0],a[1])-l,h=i.get("lineStyle.normal.width")||2,d=i.get("clipOverflow")?h/2:Math.max(u,c);o?(l-=d,c+=2*d):(s-=d,u+=2*d);var f=new A.Rect({shape:{x:s,y:l,width:u,height:c}});return e&&(f.shape[o?"width":Ye]=0,A.initProps(f,{shape:{width:u,height:c}},i)),f}function h(t,e,i){var n=t.getAngleAxis(),r=t.getRadiusAxis(),a=r[K](),o=n[K](),s=Math.PI/180,l=new A.Sector({shape:{cx:t.cx,cy:t.cy,r0:a[0],r:a[1],startAngle:-o[0]*s,endAngle:-o[1]*s,clockwise:n.inverse}});return e&&(l.shape.endAngle=-o[0]*s,A.initProps(l,{shape:{endAngle:-o[1]*s}},i)),l}function v(t,e,i){return"polar"===t.type?h(t,e,i):s(t,e,i)}function m(t,e,i){for(var n=e[F](),r="x"===n.dim||n.dim===u?0:1,a=[],o=0;o<t[Ne]-1;o++){var s=t[o+1],l=t[o];a.push(l);var c=[];switch(i){case"end":c[r]=s[r],c[1-r]=l[1-r],a.push(c);break;case oe:var h=(l[r]+s[r])/2,d=[];c[r]=d[r]=h,c[1-r]=l[1-r],d[1-r]=s[1-r],a.push(c),a.push(d);break;default:c[r]=l[r],c[1-r]=s[1-r],a.push(c)}}return t[o]&&a.push(t[o]),a}function g(t,e){return Math.max(Math.min(t,e[1]),e[0])}function y(t,e){var i=t.getVisual("visualMeta");if(i&&i[Ne]){for(var n,r=i[Ne]-1;r>=0;r--)if(i[r].dimension<2){n=i[r];break}if(n&&"cartesian2d"===e.type){var a=n.dimension,o=t[w][a],s=t[x](o),u=n.stops,h=[];u[0][l]&&u.sort(function(t,e){return t[l][0]-e[l][0]});for(var d=u[0],f=u[u[Ne]-1],v=d[l]?g(d[l][0],s):d.value,m=f[l]?g(f[l][1],s):f.value,y=m-v,r=0;r<u[Ne];r++)if(u[r][l]){if(u[r][l][1]===u[r][l][0])continue;h.push({offset:(g(u[r][l][0],s)-v)/y,color:u[r].color},{offset:(g(u[r][l][1],s)-v)/y,color:u[r].color})}else h.push({offset:(u[r].value-v)/y,color:u[r].color});var _=new A.LinearGradient(0,0,0,0,h,!0),b=e[p](o),S=Math.round(b.toGlobalCoord(b[c](v))),T=Math.round(b.toGlobalCoord(b[c](m)));return M.each(h,function(t){t.offset=(Math.round(t.offset*(T-S)+S)-S)/(T-S)}),_[o]=S,_[o+"2"]=T,_}}}var M=t(hi),T=t("../helper/SymbolDraw"),C=t("../helper/Symbol"),L=t("./lineAnimationDiff"),A=t(d),P=t("./poly"),I=t("../../view/Chart");return I[He]({type:"line",init:function(){var t=new A.Group,e=new T;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,n,r){var o=t[fe],s=this.group,l=t[qe](),u=t[ri]("lineStyle.normal"),c=t[ri]("areaStyle.normal"),h=l[_](l.getItemLayout,!0),d="polar"===o.type,f=this._coordSys,p=this._symbolDraw,g=this._polyline,x=this._polygon,b=this._lineGroup,w=t.get(B),T=!c.isEmpty(),C=a(o,l),L=t.get("showSymbol"),A=L&&!d&&!t.get("showAllSymbol")&&this._getSymbolIgnoreFunc(l,o),P=this._data;P&&P.eachItemGraphicEl(function(t,e){t.__temp&&(s[Fe](t),P.setItemGraphicEl(e,null))}),L||p[Fe](),s.add(b);var I=!d&&t.get("step");g&&f.type===o.type&&I===this._step?(T&&!x?x=this._newPolygon(h,C,o,w):x&&!T&&(b[Fe](x),x=this._polygon=null),b.setClipPath(v(o,!1,t)),L&&p.updateData(l,A),l.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),e(this._stackedOnPoints,C)&&e(this._points,h)||(w?this._updateAnimation(l,C,o,r,I):(g[S]({points:h}),x&&x[S]({points:h,stackedOnPoints:C})))):(L&&p.updateData(l,A),I&&(h=m(h,o,I),C=m(C,o,I)),g=this._newPolyline(h,o,w),T&&(x=this._newPolygon(h,C,o,w)),b.setClipPath(v(o,!0,t)));var k=y(l,o)||l.getVisual("color");g.useStyle(M[Ze](u.getLineStyle(),{fill:"none",stroke:k,lineJoin:"bevel"}));var D=t.get("smooth");if(D=i(t.get("smooth")),g[S]({smooth:D,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),x){var z=l.stackedOn,R=0;if(x.useStyle(M[Ze](c.getAreaStyle(),{fill:k,opacity:.7,lineJoin:"bevel"})),z){var O=z.hostModel;R=i(O.get("smooth"))}x[S]({smooth:D,stackedOnSmooth:R,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=l,this._coordSys=o,this._stackedOnPoints=C,this._points=h,this._step=I},highlight:function(t,e,i,n){var r=t[qe](),a=o(r,n);if(!(a instanceof Array)&&null!=a&&a>=0){var s=r[O](a);if(!s){var l=r.getItemLayout(a);s=new C(r,a),s[re]=l,s.setZ(t.get(Ce),t.get("z")),s[Je]=isNaN(l[0])||isNaN(l[1]),s.__temp=!0,r.setItemGraphicEl(a,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else I[si].highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var r=t[qe](),a=o(r,n);if(null!=a&&a>=0){var s=r[O](a);s&&(s.__temp?(r.setItemGraphicEl(a,null),this.group[Fe](s)):s.downplay())}else I[si].downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup[Fe](e),e=new P.Polyline({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup[Fe](i),i=new P[D]({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_getSymbolIgnoreFunc:function(t,e){var i=e.getAxesByScale(b)[0];return i&&i.isLabelIgnored?M.bind(i.isLabelIgnored,i):void 0},_updateAnimation:function(t,e,i,n,r){var a=this._polyline,o=this._polygon,s=t.hostModel,l=L(this._data,t,this._stackedOnPoints,e,this._coordSys,i),u=l.current,c=l.stackedOnCurrent,h=l.next,d=l.stackedOnNext;r&&(u=m(l.current,i,r),c=m(l.stackedOnCurrent,i,r),h=m(l.next,i,r),d=m(l.stackedOnNext,i,r)),a.shape.__points=l.current,a.shape.points=u,A.updateProps(a,{shape:{points:h}},s),o&&(o[S]({points:u,stackedOnPoints:c}),A.updateProps(o,{shape:{points:h,stackedOnPoints:d,__points:l.next}},s));for(var f=[],p=l.status,v=0;v<p[Ne];v++){var g=p[v].cmd;if("="===g){var y=t[O](p[v].idx1);y&&f.push({el:y,ptIdx:v})}}a.animators&&a.animators[Ne]&&a.animators[0].during(function(){for(var t=0;t<f[Ne];t++){var e=f[t].el;e.attr(re,a.shape.__points[f[t].ptIdx])}})},remove:function(){var t=this.group,e=this._data;this._lineGroup[ve](),this._symbolDraw[Fe](!0),e&&e.eachItemGraphicEl(function(i,n){i.__temp&&(t[Fe](i),e.setItemGraphicEl(n,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._data=null}})}),e("echarts/visual/symbol",[fi],function(){return function(t,e,i,n){n.eachRawSeriesByType(t,function(t){var r=t[qe](),a=t.get(s)||e,o=t.get("symbolSize");r.setVisual({legendSymbol:i||a,symbol:a,symbolSize:o}),n.isSeriesFiltered(t)||(typeof o===Me&&r.each(function(e){var i=t[H](e),n=t[Pe](e);r.setItemVisual(e,"symbolSize",o(i,n))}),r.each(function(t){var e=r[M](t),i=e[N](s,!0),n=e[N]("symbolSize",!0);null!=i&&r.setItemVisual(t,s,i),null!=n&&r.setItemVisual(t,"symbolSize",n)}))})}}),e("echarts/layout/points",[fi],function(){return function(t,e){e.eachSeriesByType(t,function(t){var e=t[qe](),i=t[fe];if(i){var n=i[w];"singleAxis"===i.type?e.each(n[0],function(t,n){e.setItemLayout(n,isNaN(t)?[0/0,0/0]:i[f](t))}):e.each(n,function(t,n,r){e.setItemLayout(r,isNaN(t)||isNaN(n)?[0/0,0/0]:i[f]([t,n]))},!0)}})}}),e("echarts/processor/dataSample",[],function(){var t={average:function(t){for(var e=0,i=0,n=0;n<t[Ne];n++)isNaN(t[n])||(e+=t[n],i++);return 0===i?0/0:e/i},sum:function(t){for(var e=0,i=0;i<t[Ne];i++)e+=t[i]||0;return e},max:function(t){for(var e=-1/0,i=0;i<t[Ne];i++)t[i]>e&&(e=t[i]);return e},min:function(t){for(var e=1/0,i=0;i<t[Ne];i++)t[i]<e&&(e=t[i]);return e},nearest:function(t){return t[0]}},e=function(t){return Math.round(t[Ne]/2)};return function(i,n){n.eachSeriesByType(i,function(i){var n=i[qe](),r=i.get("sampling"),a=i[fe];if("cartesian2d"===a.type&&r){var o=a[F](),s=a.getOtherAxis(o),l=o[K](),u=l[1]-l[0],c=Math.round(n.count()/u);if(c>1){var h;typeof r===oi?h=t[r]:typeof r===Me&&(h=r),h&&(n=n.downSample(s.dim,1/c,h,e),i.setData(n))}}},this)}}),e("echarts/chart/pie/PieSeries",[fi,"../../data/List",hi,o,"../../data/helper/completeDimensions","../../component/helper/selectableMixin",h],function(t){var e=t("../../data/List"),i=t(hi),n=t(o),r=t("../../data/helper/completeDimensions"),a=t("../../component/helper/selectableMixin"),s=t(h).extendSeriesModel({type:"series.pie",init:function(t){s.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._dataBeforeProcessed
},this.updateSelectedMap(t.data),this._defaultLabelLine(t)},mergeOption:function(t){s.superCall(this,j,t),this.updateSelectedMap(this[Y].data)},getInitialData:function(t){var i=r(["value"],t.data),n=new e(i,this);return n.initData(t.data),n},getDataParams:function(t){var e=this._data,i=s.superCall(this,Pe,t),n=e.getSum("value");return i.percent=n?+(e.get("value",t)/n*100)[m](2):0,i.$vars.push("percent"),i},_defaultLabelLine:function(t){n.defaultEmphasis(t.labelLine,["show"]);var e=t.labelLine[V],i=t.labelLine[E];e.show=e.show&&t.label[V].show,i.show=i.show&&t.label[E].show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,avoidLabelOverlap:!0,label:{normal:{rotate:!1,show:!0,position:"outer"},emphasis:{}},labelLine:{normal:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}}},itemStyle:{normal:{borderWidth:1},emphasis:{}},animationEasing:"cubicOut",data:[]}});return i.mixin(s,a),s}),e("echarts/chart/pie/PieView",[fi,d,hi,"../../view/Chart"],function(t){function e(t,e,n,r){var a=e[qe](),o=this[ke],s=a[G](o),l=e.get("selectedOffset");r[Ge]({type:"pieToggleSelect",from:t,name:s,seriesId:e.id}),a.each(function(t){i(a[O](t),a.getItemLayout(t),e.isSelected(a[G](t)),l,n)})}function i(t,e,i,n,r){var a=(e.startAngle+e.endAngle)/2,o=Math.cos(a),s=Math.sin(a),l=i?n:0,u=[o*l,s*l];r?t.animate().when(200,{position:u}).start("bounceOut"):t.attr(re,u)}function n(t,e){function i(){o[Je]=o.hoverIgnore,s[Je]=s.hoverIgnore}function n(){o[Je]=o.normalIgnore,s[Je]=s.normalIgnore}a.Group.call(this);var r=new a.Sector({z2:2}),o=new a.Polyline,s=new a.Text;this.add(r),this.add(o),this.add(s),this.updateData(t,e,!0),this.on(E,i).on(V,n).on(Re,i).on(ze,n)}function r(t,e,i,n,r){var a=n[ri](de),s=r===L||"inner"===r;return{fill:a[ue]()||(s?"#fff":t[Z](e,"color")),opacity:t[Z](e,ne),textFont:a[ce](),text:o.retrieve(t.hostModel.getFormattedLabel(e,i),t[G](e))}}var a=t(d),o=t(hi),s=n[si];s.updateData=function(t,e,n){function r(){l.stopAnimation(!0),l.animateTo({shape:{r:h.r+10}},300,"elasticOut")}function s(){l.stopAnimation(!0),l.animateTo({shape:{r:h.r}},300,"elasticOut")}var l=this.childAt(0),u=t.hostModel,c=t[M](e),h=t.getItemLayout(e),d=o[He]({},h);d.label=null,n?(l[S](d),l.shape.endAngle=h.startAngle,a.updateProps(l,{shape:{endAngle:h.endAngle}},u,e)):a.updateProps(l,{shape:d},u,e);var f=c[ri]("itemStyle"),p=t[Z](e,"color");l.useStyle(o[Ze]({lineJoin:"bevel",fill:p},f[ri](V).getItemStyle())),l.hoverStyle=f[ri](E).getItemStyle(),i(this,t.getItemLayout(e),c.get("selected"),u.get("selectedOffset"),u.get(B)),l.off(Re).off(ze).off(E).off(V),c.get("hoverAnimation")&&u.ifEnableAnimation()&&l.on(Re,r).on(ze,s).on(E,r).on(V,s),this._updateLabel(t,e),a[A](this)},s._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),o=t.hostModel,s=t[M](e),l=t.getItemLayout(e),u=l.label,c=t[Z](e,"color");a.updateProps(i,{shape:{points:u.linePoints||[[u.x,u.y],[u.x,u.y],[u.x,u.y]]}},o,e),a.updateProps(n,{style:{x:u.x,y:u.y}},o,e),n.attr({style:{textVerticalAlign:u.verticalAlign,textAlign:u[he],textFont:u.font},rotation:u[T],origin:[u.x,u.y],z2:10});var h=s[ri]("label.normal"),d=s[ri]("label.emphasis"),f=s[ri]("labelLine.normal"),p=s[ri]("labelLine.emphasis"),v=h.get(re)||d.get(re);n[Le](r(t,e,V,h,v)),n[Je]=n.normalIgnore=!h.get("show"),n.hoverIgnore=!d.get("show"),i[Je]=i.normalIgnore=!f.get("show"),i.hoverIgnore=!p.get("show"),i[Le]({stroke:c,opacity:t[Z](e,ne)}),i[Le](f[ri]("lineStyle").getLineStyle()),n.hoverStyle=r(t,e,E,d,v),i.hoverStyle=p[ri]("lineStyle").getLineStyle();var m=f.get("smooth");m&&m===!0&&(m=.4),i[S]({smooth:m})},o[me](n,a.Group);var l=t("../../view/Chart")[He]({type:"pie",init:function(){var t=new a.Group;this._sectorGroup=t},render:function(t,i,r,a){if(!a||a.from!==this.uid){var s=t[qe](),l=this._data,u=this.group,c=i.get(B),h=!l,d=o.curry(e,this.uid,t,c,r),f=t.get("selectedMode");if(s.diff(l).add(function(t){var e=new n(s,t);h&&e.eachChild(function(t){t.stopAnimation(!0)}),f&&e.on("click",d),s.setItemGraphicEl(t,e),u.add(e)})[Xe](function(t,e){var i=l[O](e);i.updateData(s,t),i.off("click"),f&&i.on("click",d),u.add(i),s.setItemGraphicEl(t,i)})[Fe](function(t){var e=l[O](t);u[Fe](e)}).execute(),c&&h&&s.count()>0){var p=s.getItemLayout(0),v=Math.max(r[ni](),r[ii]())/2,m=o.bind(u.removeClipPath,u);u.setClipPath(this._createClipPath(p.cx,p.cy,v,p.startAngle,p.clockwise,m,t))}this._data=s}},_createClipPath:function(t,e,i,n,r,o,s){var l=new a.Sector({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:r}});return a.initProps(l,{shape:{endAngle:n+(r?1:-1)*Math.PI*2}},s,o),l}});return l}),e("echarts/action/createDataSelectAction",[fi,"../echarts",hi],function(t){var e=t("../echarts"),i=t(hi);return function(t,n){i.each(n,function(i){i[Xe]="updateView",e[we](i,function(e,n){var r={};return n[Qe]({mainType:"series",subType:t,query:e},function(t){t[i.method]&&t[i.method](e.name);var n=t[qe]();n.each(function(e){var i=n[G](e);r[i]=t.isSelected(i)||!1})}),{name:e.name,selected:r}})})}}),e("echarts/visual/dataColor",[fi],function(){return function(t,e){var i={};e.eachRawSeriesByType(t,function(t){var n=t.getRawData(),r={};if(!e.isSeriesFiltered(t)){var a=t[qe]();a.each(function(t){var e=a.getRawIndex(t);r[e]=t}),n.each(function(e){var o=n[M](e),s=r[e],l=a[Z](s,"color",!0);if(l)n.setItemVisual(e,"color",l);else{var u=o.get("itemStyle.normal.color")||t.getColorFromPalette(n[G](e),i);n.setItemVisual(e,"color",u),a.setItemVisual(s,"color",u)}})}})}}),e("echarts/chart/pie/pieLayout",[fi,a,"./labelLayout",hi],function(t){var e=t(a),i=e[g],n=t("./labelLayout"),r=t(hi),o=2*Math.PI,s=Math.PI/180;return function(t,a,l){a.eachSeriesByType(t,function(t){var a=t.get(ae),c=t.get(u);r[Se](c)||(c=[0,c]),r[Se](a)||(a=[a,a]);var h=l[ni](),d=l[ii](),f=Math.min(h,d),p=i(a[0],h),v=i(a[1],d),m=i(c[0],f/2),g=i(c[1],f/2),_=t[qe](),b=-t.get("startAngle")*s,w=t.get("minAngle")*s,M=_.getSum("value"),S=Math.PI/(M||_.count())*2,T=t.get("clockwise"),C=t.get("roseType"),L=_[x]("value");L[0]=0;var A=o,P=0,I=b,k=T?1:-1;if(_.each("value",function(t,i){var n;n="area"!==C?0===M?S:t*S:o/(_.count()||1),w>n?(n=w,A-=w):P+=t;var r=I+k*n;_.setItemLayout(i,{angle:n,startAngle:I,endAngle:r,clockwise:T,cx:p,cy:v,r0:m,r:C?e[y](t,L,[m,g]):g}),I=r},!0),o>A)if(.001>=A){var D=o/_.count();_.each(function(t){var e=_.getItemLayout(t);e.startAngle=b+k*t*D,e.endAngle=b+k*(t+1)*D})}else S=A/P,I=b,_.each("value",function(t,e){var i=_.getItemLayout(e),n=i.angle===w?w:t*S;i.startAngle=I,i.endAngle=I+k*n,I+=n});n(t,g,h,d)})}}),e("echarts/processor/dataFilter",[],function(){return function(t,e){var i=e.findComponents({mainType:"legend"});i&&i[Ne]&&e.eachSeriesByType(t,function(t){var e=t[qe]();e.filterSelf(function(t){for(var n=e[G](t),r=0;r<i[Ne];r++)if(!i[r].isSelected(n))return!1;return!0},this)},this)}}),e("echarts/chart/map/MapSeries",[fi,"../../data/List","../../model/Series",hi,"../../data/helper/completeDimensions","../../util/format","../../component/helper/selectableMixin","../../coord/geo/geoCreator"],function(t){var e=t("../../data/List"),i=t("../../model/Series"),n=t(hi),r=t("../../data/helper/completeDimensions"),a=t("../../util/format"),o=a.encodeHTML,s=a.addCommas,l=t("../../component/helper/selectableMixin"),u=t("../../coord/geo/geoCreator"),c=i[He]({type:"series.map",needsDrawMap:!1,seriesGroup:[],init:function(t){t=this._fillOption(t,t.map),this[Y]=t,c.superApply(this,"init",arguments),this.updateSelectedMap(t.data)},getInitialData:function(t){var i=r(["value"],t.data||[]),n=new e(i,this);return n.initData(t.data),n},mergeOption:function(t){t.data&&(t=this._fillOption(t,this[Y].map)),c.superCall(this,j,t),this.updateSelectedMap(this[Y].data)},_fillOption:function(t,e){return t=n[He]({},t),t.data=u.getFilledRegions(t.data,e),t},getRawValue:function(t){return this._data.get("value",t)},getRegionModel:function(t){var e=this[qe]();return e[M](e[R](t))},formatTooltip:function(t){for(var e=this[qe](),i=s(this[H](t)),n=e[G](t),r=this.seriesGroup,a=[],l=0;l<r[Ne];l++){var u=r[l].originalData[R](n);isNaN(r[l].originalData.get("value",u))||a.push(o(r[l].name))}return a.join(", ")+"<br />"+n+" : "+i},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"china",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,center:null,zoom:1,scaleLimit:null,label:{normal:{show:!1,textStyle:{color:"#000"}},emphasis:{show:!0,textStyle:{color:"rgb(100,0,0)"}}},itemStyle:{normal:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{areaColor:"rgba(255,215,0,0.8)"}}},setZoom:function(t){this[Y].zoom=t},setCenter:function(t){this[Y][ae]=t}});return n.mixin(c,l),c}),e("echarts/chart/map/MapView",[fi,d,"../../component/helper/MapDraw",h],function(t){var e=t(d),i=t("../../component/helper/MapDraw");t(h).extendChartView({type:"map",render:function(t,e,n,r){if(!r||"mapToggleSelect"!==r.type||r.from!==this.uid){var a=this.group;if(a[ve](),r&&"geoRoam"===r.type&&r.component===Ee&&r.name===t.name){var o=this._mapDraw;o&&a.add(o.group)}else if(t.needsDrawMap){var o=this._mapDraw||new i(n,!0);a.add(o.group),o.draw(t,e,n,this,r),this._mapDraw=o}else this._mapDraw&&this._mapDraw[Fe](),this._mapDraw=null;t.get("showLegendSymbol")&&e[U]("legend")&&this._renderSymbols(t,e,n)}},remove:function(){this._mapDraw&&this._mapDraw[Fe](),this._mapDraw=null,this.group[ve]()},_renderSymbols:function(t){var i=t.originalData,n=this.group;i.each("value",function(r,a){if(!isNaN(r)){var o=i.getItemLayout(a);if(o&&o.point){var s=o.point,l=o.offset,u=new e.Circle({style:{fill:t[qe]().getVisual("color")},shape:{cx:s[0]+9*l,cy:s[1],r:3},silent:!0,z2:10});if(!l){var c=t.mainSeries[qe](),h=i[G](a),d=h,f=c[R](h),p=i[M](a),v=p[ri]("label.normal"),m=p[ri]("label.emphasis"),g=v[ri](de),y=m[ri](de),_=c[O](f);u[Le]({textPosition:"bottom"});var x=function(){u[Le]({text:m.get("show")?d:"",textFill:y[ue](),textFont:y[ce]()})},b=function(){u[Le]({text:v.get("show")?d:"",textFill:g[ue](),textFont:g[ce]()})};_.on(Re,x).on(ze,b).on(E,x).on(V,b),b()}n.add(u)}}})}})}),e("echarts/action/geoRoam",[fi,hi,"./roamHelper","../echarts"],function(t){var e=t(hi),i=t("./roamHelper"),n=t("../echarts");n[we]({type:"geoRoam",event:"geoRoam",update:"updateLayout"},function(t,n){var r=t.componentType||Ee;n[Qe]({mainType:r,query:t},function(n){var a=n[fe];if("geo"===a.type){var o=i.updateCenterAndZoom(a,t,n.get("scaleLimit"));n.setCenter&&n.setCenter(o[ae]),n.setZoom&&n.setZoom(o.zoom),r===Ee&&e.each(n.seriesGroup,function(t){t.setCenter(o[ae]),t.setZoom(o.zoom)})}})})}),e("echarts/coord/geo/geoCreator",[fi,"./Geo","../../util/layout",hi,h],function(t){function e(t,e){var i=this[le](),n=t.getBoxLayoutParams(),a=t.get("aspectScale")||.75;n.aspect=i.width/i[Ye]*a;var o=r[se](n,{width:e[ni](),height:e[ii]()});this.setViewRect(o.x,o.y,o.width,o[Ye]),this.setCenter(t.get(ae)),this.setZoom(t.get("zoom"))}function i(t,e){a.each(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}var n=t("./Geo"),r=t("../../util/layout"),a=t(hi),o={},s={dimensions:n[si][w],create:function(t,r){var s=[];t[Qe]("geo",function(t,a){var l=t.get("map"),u=o[l],c=new n(l+a,l,u&&u.geoJson,u&&u.specialAreas,t.get("nameMap"));c.zoomLimit=t.get("scaleLimit"),s.push(c),i(c,t),t[fe]=c,c.model=t,c[ai]=e,c[ai](t,r)}),t[Ue](function(t){var e=t.get(fe);if("geo"===e){var i=t.get("geoIndex")||0;t[fe]=s[i]}});var l={};return t.eachSeriesByType("map",function(t){var e=t.get("map");l[e]=l[e]||[],l[e].push(t)}),a.each(l,function(t,l){var u=o[l],c=a.map(t,function(t){return t.get("nameMap")}),h=new n(l,l,u&&u.geoJson,u&&u.specialAreas,a.mergeAll(c));h.zoomLimit=a.retrieve.apply(null,a.map(t,function(t){return t.get("scaleLimit")})),s.push(h),h[ai]=e,h[ai](t[0],r),a.each(t,function(t){t[fe]=h,i(h,t)})}),s},registerMap:function(t,e,i){e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),typeof e===oi&&(e=typeof JSON!==Q&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),o[t]={geoJson:e,specialAreas:i}},getMap:function(t){return o[t]},getFilledRegions:function(t,e){var i=(t||[]).slice(),n=s.getMap(e),r=n&&n.geoJson;if(!r)return t;for(var a={},o=r.features,l=0;l<i[Ne];l++)a[i[l].name]=i[l];for(var l=0;l<o[Ne];l++){var u=o[l].properties.name;a[u]||i.push({name:u})}return i}},l=t(h);return l.registerMap=s.registerMap,l.getMap=s.getMap,l.loadMap=function(){},l.registerCoordinateSystem("geo",s),s}),e("echarts/chart/map/mapSymbolLayout",[fi,hi],function(t){var e=t(hi);return function(t){var i={};t.eachSeriesByType("map",function(n){var r=n.get("map");if(!i[r]){var a={};e.each(n.seriesGroup,function(e){var i=e[fe],n=e.originalData;e.get("showLegendSymbol")&&t[U]("legend")&&n.each("value",function(t,e){var r=n[G](e),o=i.getRegion(r);if(o&&!isNaN(t)){var s=a[r]||0,l=i[f](o[ae]);a[r]=s+1,n.setItemLayout(e,{point:l,offset:s})}})});var o=n[qe]();o.each(function(t){var e=o[G](t),i=o.getItemLayout(t)||{};i.showLabel=!a[e],o.setItemLayout(t,i)}),i[r]=!0}})}}),e("echarts/chart/map/mapVisual",[fi],function(){return function(t){t.eachSeriesByType("map",function(t){var e=t.get("color"),i=t[ri]("itemStyle.normal"),n=i.get("areaColor"),r=i.get("color")||e[t[Ie]%e[Ne]];t[qe]().setVisual({areaColor:n,color:r})})}}),e("echarts/chart/map/mapDataStatistic",[fi,hi],function(t){function e(t,e){for(var i={},n=["value"],r=0;r<t[Ne];r++)t[r].each(n,function(e,n){var a=t[r][G](n);i[a]=i[a]||[],isNaN(e)||i[a].push(e)});return t[0].map(n,function(n,r){for(var a=t[0][G](r),o=0,s=1/0,l=-1/0,u=i[a][Ne],c=0;u>c;c++)s=Math.min(s,i[a][c]),l=Math.max(l,i[a][c]),o+=i[a][c];var h;return h="min"===e?s:"max"===e?l:"average"===e?o/u:o,0===u?0/0:h})}var i=t(hi);return function(t){var n={};t.eachSeriesByType("map",function(t){var e=t.get("map");n[e]=n[e]||[],n[e].push(t)}),i.each(n,function(t){for(var n=e(i.map(t,function(t){return t[qe]()}),t[0].get("mapValueCalculation")),r=0;r<t[Ne];r++)t[r].originalData=t[r][qe]();for(var r=0;r<t[Ne];r++)t[r].seriesGroup=t,t[r].needsDrawMap=0===r,t[r].setData(n.cloneShallow()),t[r].mainSeries=t[0]})}}),e("echarts/chart/map/backwardCompat",[fi,hi],function(t){var e=t(hi);return function(t){var i=[];e.each(t[Ee],function(t){"map"===t.type&&i.push(t)}),e.each(i,function(t){t.map=t.map||t.mapType,e[Ze](t,t.mapLocation)})}}),e("echarts/component/axis",[fi,"../coord/cartesian/AxisModel","./axis/AxisView"],function(t){t("../coord/cartesian/AxisModel"),t("./axis/AxisView")}),e("echarts/coord/geo/GeoModel",[fi,o,"../../model/Component","../../model/Model",hi,"../../component/helper/selectableMixin","./geoCreator"],function(t){var e=t(o),i=t("../../model/Component"),n=t("../../model/Model"),r=t(hi),a=t("../../component/helper/selectableMixin"),s=t("./geoCreator"),l=i[He]({type:"geo",coordinateSystem:null,init:function(t){i[si].init.apply(this,arguments),e.defaultEmphasis(t.label,[re,"show",de,"distance","formatter"])},optionUpdated:function(){var t=this[Y],e=this;t.regions=s.getFilledRegions(t.regions,t.map),this._optionModelMap=r.reduce(t.regions||[],function(t,i){return i.name&&(t[i.name]=new n(i,e)),t},{}),this.updateSelectedMap(t.regions)},defaultOption:{zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:.75,silent:!1,map:"",center:null,zoom:1,scaleLimit:null,label:{normal:{show:!1,textStyle:{color:"#000"}},emphasis:{show:!0,textStyle:{color:"rgb(100,0,0)"}}},itemStyle:{normal:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{color:"rgba(255,215,0,0.8)"}},regions:[]},getRegionModel:function(t){return this._optionModelMap[t]},getFormattedLabel:function(t,e){var i=this.get("label."+e+".formatter"),n={name:t};return typeof i===Me?(n.status=e,i(n)):typeof i===oi?i[Te]("{a}",n.seriesName):void 0},setZoom:function(t){this[Y].zoom=t},setCenter:function(t){this[Y][ae]=t}});return r.mixin(l,a),l}),e("echarts/component/geo/GeoView",[fi,"../helper/MapDraw",h],function(t){var e=t("../helper/MapDraw");return t(h)[xe]({type:"geo",init:function(t,i){var n=new e(i,!0);this._mapDraw=n,this.group.add(n.group)},render:function(t,e,i,n){if(!n||"geoToggleSelect"!==n.type||n.from!==this.uid){var r=this._mapDraw;t.get("show")?r.draw(t,e,i,this,n):this._mapDraw.group[ve](),this.group.silent=t.get("silent")}}})}),e("echarts/util/layout",[fi,hi,z,"./number","./format"],function(t){function e(t,e,i,n,r){var a=0,o=0;null==n&&(n=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,u){var c,h,d=l[re],f=l[le](),p=e.childAt(u+1),v=p&&p[le]();if("horizontal"===t){var m=f.width+(v?-v.x+f.x:0);c=a+m,c>n||l.newline?(a=0,c=m,o+=s+i,s=f[Ye]):s=Math.max(s,f[Ye])}else{var g=f[Ye]+(v?-v.y+f.y:0);h=o+g,h>r||l.newline?(a+=s+i,o=0,h=g,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=o,"horizontal"===t?a=c+i:o=h+i)})}var i=t(hi),n=t(z),r=t("./number"),a=t("./format"),o=r[g],s=i.each,l={},u=["left","right","top",$e,"width",Ye];return l.box=e,l.vbox=i.curry(e,"vertical"),l.hbox=i.curry(e,"horizontal"),l.getAvailableSize=function(t,e,i){var n=e.width,r=e[Ye],s=o(t.x,n),l=o(t.y,r),u=o(t.x2,n),c=o(t.y2,r);return(isNaN(s)||isNaN(parseFloat(t.x)))&&(s=0),(isNaN(u)||isNaN(parseFloat(t.x2)))&&(u=n),(isNaN(l)||isNaN(parseFloat(t.y)))&&(l=0),(isNaN(c)||isNaN(parseFloat(t.y2)))&&(c=r),i=a.normalizeCssArray(i||0),{width:Math.max(u-s-i[1]-i[3],0),height:Math.max(c-l-i[0]-i[2],0)}},l[se]=function(t,e,i){i=a.normalizeCssArray(i||0);var r=e.width,s=e[Ye],l=o(t.left,r),u=o(t.top,s),c=o(t.right,r),h=o(t[$e],s),d=o(t.width,r),f=o(t[Ye],s),p=i[2]+i[0],v=i[1]+i[3],m=t.aspect;switch(isNaN(d)&&(d=r-c-v-l),isNaN(f)&&(f=s-h-p-u),isNaN(d)&&isNaN(f)&&(m>r/s?d=.8*r:f=.8*s),null!=m&&(isNaN(d)&&(d=m*f),isNaN(f)&&(f=d/m)),isNaN(l)&&(l=r-c-d-v),isNaN(u)&&(u=s-h-f-p),t.left||t.right){case ae:l=r/2-d/2-i[3];break;case"right":l=r-d-v}switch(t.top||t[$e]){case oe:case ae:u=s/2-f/2-i[0];break;case $e:u=s-f-p}l=l||0,u=u||0,isNaN(d)&&(d=r-l-(c||0)),isNaN(f)&&(f=s-u-(h||0));var g=new n(l+i[3],u+i[0],d,f);return g.margin=i,g},l.positionGroup=function(t,e,n,r){var a=t[le]();e=i[He](i.clone(e),{width:a.width,height:a[Ye]}),e=l[se](e,n,r),t.attr(re,[e.x-a.x,e.y-a.y])},l.mergeLayoutParam=function(t,e,n){function r(i){var r={},l=0,u={},c=0,h=n.ignoreSize?1:2;if(s(i,function(e){u[e]=t[e]}),s(i,function(t){a(e,t)&&(r[t]=u[t]=e[t]),o(r,t)&&l++,o(u,t)&&c++}),c!==h&&l){if(l>=h)return r;for(var d=0;d<i[Ne];d++){var f=i[d];if(!a(r,f)&&a(t,f)){r[f]=t[f];break}}return r}return u}function a(t,e){return t.hasOwnProperty(e)}function o(t,e){return null!=t[e]&&"auto"!==t[e]}function l(t,e,i){s(t,function(t){e[t]=i[t]})}!i[We](n)&&(n={});var u=["width","left","right"],c=[Ye,"top",$e],h=r(u),d=r(c);l(u,t,h),l(c,t,d)},l.getLayoutParams=function(t){return l.copyLayoutParams({},t)},l.copyLayoutParams=function(t,e){return e&&t&&s(u,function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t},l}),e("echarts/component/legend/LegendModel",[fi,hi,"../../model/Model",h],function(t){var e=t(hi),i=t("../../model/Model"),n=t(h)[be]({type:"legend",dependencies:[Ee],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this[q](t,i),t.selected=t.selected||{}},mergeOption:function(t){n.superCall(this,j,t)},optionUpdated:function(){this._updateData(this[W]);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,i=0;i<t[Ne];i++){var n=t[i].get("name");if(this.isSelected(n)){this.select(n),e=!0;break}}!e&&this.select(t[0].get("name"))}},_updateData:function(t){var n=e.map(this.get("data")||[],function(t){return(typeof t===oi||typeof t===_e)&&(t={name:t}),new i(t,this,this[W])},this);this._data=n;var r=e.map(t.getSeries(),function(t){return t.name});t[Ue](function(t){if(t.legendDataProvider){var e=t.legendDataProvider();r=r[X](e[_](e[G]))}}),this._availableNames=r},getData:function(){return this._data},select:function(t){var i=this[Y].selected,n=this.get("selectedMode");if("single"===n){var r=this._data;e.each(r,function(t){i[t.get("name")]=!1})}i[t]=!0},unSelect:function(t){"single"!==this.get("selectedMode")&&(this[Y].selected[t]=!1)},toggleSelected:function(t){var e=this[Y].selected;t in e||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},isSelected:function(t){var i=this[Y].selected;return!(t in i&&!i[t])&&e[ge](this._availableNames,t)>=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:"top",align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0}});return n}),e("echarts/component/legend/legendAction",[fi,h,hi],function(t){function e(t,e,i){var r,a={},o="toggleSelected"===t;return i[Qe]("legend",function(i){o&&null!=r?i[r?"select":"unSelect"](e.name):(i[t](e.name),r=i.isSelected(e.name));var s=i[qe]();n.each(s,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);a[e]=e in a?a[e]&&n:n}})}),{name:e.name,selected:a}}var i=t(h),n=t(hi);i[we]("legendToggleSelect","legendselectchanged",n.curry(e,"toggleSelected")),i[we]("legendSelect","legendselected",n.curry(e,"select")),i[we]("legendUnSelect","legendunselected",n.curry(e,"unSelect"))}),e("echarts/component/legend/LegendView",[fi,hi,"../../util/symbol",d,"../helper/listComponent",h],function(t){function e(t,e){e[Ge]({type:"legendToggleSelect",name:t})}function i(t,e,i){var n=i.getZr()[Ke].getDisplayList()[0];n&&n.useHoverLayer||t.get("legendHoverLink")&&i[Ge]({type:"highlight",seriesName:t.name,name:e})}function n(t,e,i){var n=i.getZr()[Ke].getDisplayList()[0];n&&n.useHoverLayer||t.get("legendHoverLink")&&i[Ge]({type:"downplay",seriesName:t.name,name:e})}var r=t(hi),a=t("../../util/symbol"),o=t(d),l=t("../helper/listComponent"),u=r.curry;return t(h)[xe]({type:"legend",init:function(){this._symbolTypeStore={}},render:function(t,a,c){var h=this.group;if(h[ve](),t.get("show")){var d=t.get("selectedMode"),f=t.get("align");"auto"===f&&(f="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left");var p={};r.each(t[qe](),function(r){var l=r.get("name");if(""===l||"\n"===l)return void h.add(new o.Group({newline:!0}));var v=a.getSeriesByName(l)[0];if(!p[l])if(v){var m=v[qe](),g=m.getVisual("color");typeof g===Me&&(g=g(v[Pe](0)));var y=m.getVisual("legendSymbol")||"roundRect",_=m.getVisual(s),x=this._createItem(l,r,t,y,_,f,g,d);x.on("click",u(e,l,c)).on(Re,u(i,v,"",c)).on(ze,u(n,v,"",c)),p[l]=!0}else a.eachRawSeries(function(a){if(!p[l]&&a.legendDataProvider){var o=a.legendDataProvider(),s=o[R](l);if(0>s)return;var h=o[Z](s,"color"),v="roundRect",m=this._createItem(l,r,t,v,null,f,h,d);m.on("click",u(e,l,c)).on(Re,u(i,a,l,c)).on(ze,u(n,a,l,c)),p[l]=!0}},this)},this),l.layout(h,t,c),l.addBackground(h,t)}},_createItem:function(t,e,i,n,r,s,l,u){var c=i.get("itemWidth"),h=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.isSelected(t),p=new o.Group,v=e[ri](de),m=e.get("icon");if(n=m||n,p.add(a.createSymbol(n,0,0,c,h,f?l:d)),!m&&r&&(r!==n||"none"==r)){var g=.8*h;"none"===r&&(r="circle"),p.add(a.createSymbol(r,(c-g)/2,(h-g)/2,g,g,f?l:d))}var y="left"===s?c+5:-5,_=s,x=i.get("formatter");typeof x===oi&&x?t=x[Te]("{name}",t):typeof x===Me&&(t=x(t));var b=new o.Text({style:{text:t,x:y,y:h/2,fill:f?v[ue]():d,textFont:v[ce](),textAlign:_,textVerticalAlign:"middle"}});return p.add(b),p.add(new o.Rect({shape:p[le](),invisible:!0})),p.eachChild(function(t){t.silent=!u}),this.group.add(p),o[A](p),p}})}),e("echarts/component/legend/legendFilter",[],function(){return function(t){var e=t.findComponents({mainType:"legend"});e&&e[Ne]&&t.filterSeries(function(t){for(var i=0;i<e[Ne];i++)if(!e[i].isSelected(t.name))return!1;return!0})}}),e("echarts/component/tooltip/TooltipModel",[fi,h],function(t){t(h)[be]({type:"tooltip",defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove",alwaysShowContent:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:!0,animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",lineStyle:{color:"#555",width:1,type:"solid"},crossStyle:{color:"#555",width:1,type:"dashed",textStyle:{}},shadowStyle:{color:"rgba(150,150,150,0.3)"}},textStyle:{color:"#fff",fontSize:14}}})}),e("echarts/component/tooltip/TooltipView",[fi,"./TooltipContent",d,hi,"../../util/format",a,di,h],function(t){function e(t,e){if(!t||!e)return!1;var i=T.round;return i(t[0])===i(e[0])&&i(t[1])===i(e[1])}function i(t,e,i,n){return{x1:t,y1:e,x2:i,y2:n}}function n(t,e,i,n){return{x:t,y:e,width:i,height:n}}function o(t,e,i,n,r,a){return{cx:t,cy:e,r0:i,r:n,startAngle:r,endAngle:a,clockwise:!0}}function s(t,e,i,n,r){var a=i.clientWidth,o=i.clientHeight,s=20;return t+a+s>n?t-=a+s:t+=s,e+o+s>r?e-=o+s:e+=s,[t,e]}function l(t,e,i){var n=i.clientWidth,r=i.clientHeight,a=5,o=0,s=0,l=e.width,u=e[Ye];switch(t){case L:o=e.x+l/2-n/2,s=e.y+u/2-r/2;break;case"top":o=e.x+l/2-n/2,s=e.y-r-a;break;case $e:o=e.x+l/2-n/2,s=e.y+u+a;break;case"left":o=e.x-n-a,s=e.y+u/2-r/2;break;case"right":o=e.x+l+a,s=e.y+u/2-r/2}return[o,s]}function c(t,e,i,n,a,o,u){var c=u[ni](),h=u[ii](),d=o&&o[le]().clone();if(o&&d[k](o[r]),typeof t===Me&&(t=t([e,i],a,n.el,d)),b[Se](t))e=C(t[0],c),i=C(t[1],h);else if(typeof t===oi&&o){var f=l(t,d,n.el);e=f[0],i=f[1]}else{var f=s(e,i,n.el,c,h);e=f[0],i=f[1]}n.moveTo(e,i)}function y(t){var e=t[fe],i=t.get("tooltip.trigger",!0);return!(!e||"cartesian2d"!==e.type&&"polar"!==e.type&&"singleAxis"!==e.type||"item"===i)}var _=t("./TooltipContent"),x=t(d),b=t(hi),S=t("../../util/format"),T=t(a),C=T[g],A=t(di);t(h)[xe]({type:"tooltip",_axisPointers:{},init:function(t,e){if(!A.node){var i=new _(e.getDom(),e);this._tooltipContent=i,e.on("showTip",this._manuallyShowTip,this),e.on("hideTip",this._manuallyHideTip,this)}},render:function(t,e,i){if(!A.node){this.group[ve](),this._axisPointers={},this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastHover={};var n=this._tooltipContent;n[Xe](),n.enterable=t.get("enterable"),this._alwaysShowContent=t.get("alwaysShowContent"),this._seriesGroupByAxis=this._prepareAxisTriggerData(t,e);var r=this._crossText;if(r&&this.group.add(r),null!=this._lastX&&null!=this._lastY){var a=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){a._manuallyShowTip({x:a._lastX,y:a._lastY})})}var o=this._api.getZr();o.off("click",this._tryShow),o.off("mousemove",this._mousemove),o.off(ze,this._hide),o.off("globalout",this._hide),"click"===t.get("triggerOn")?o.on("click",this._tryShow,this):(o.on("mousemove",this._mousemove,this),o.on(ze,this._hide,this),o.on("globalout",this._hide,this))}},_mousemove:function(t){var e=this._tooltipModel.get("showDelay"),i=this;clearTimeout(this._showTimeout),e>0?this._showTimeout=setTimeout(function(){i._tryShow(t)},e):this._tryShow(t)},_manuallyShowTip:function(t){if(t.from!==this.uid){var e=this._ecModel,i=t[Ie],n=t[ke],a=e.getSeriesByIndex(i),o=this._api;if(null==t.x||null==t.y){if(a||e[Ue](function(t){y(t)&&!a&&(a=t)}),a){var s=a[qe]();null==n&&(n=s[R](t.name));var l,u,c=s[O](n),h=a[fe];if(h&&h[f]){var d=h[f](s.getValues(b.map(h[w],function(t){return a.coordDimToDataDim(t)[0]}),n,!0));l=d&&d[0],u=d&&d[1]}else if(c){var p=c[le]().clone();p[k](c[r]),l=p.x+p.width/2,u=p.y+p[Ye]/2}null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,target:c,event:{}})}}else{var c=o.getZr().handler.findHover(t.x,t.y);this._tryShow({offsetX:t.x,offsetY:t.y,target:c,event:{}})}}},_manuallyHideTip:function(t){t.from!==this.uid&&this._hide()},_prepareAxisTriggerData:function(t,e){var i={};return e[Ue](function(t){if(y(t)){var e,n,r=t[fe];"cartesian2d"===r.type?(e=r[F](),n=e.dim+e.index):"singleAxis"===r.type?(e=r[p](),n=e.dim+e.type):(e=r[F](),n=e.dim+r.name),i[n]=i[n]||{coordSys:[],series:[]},i[n].coordSys.push(r),i[n][Ee].push(t)}},this),i},_tryShow:function(t){var e=t[De],i=this._tooltipModel,n=i.get(Be),r=this._ecModel,a=this._api;if(i)if(this._lastX=t.offsetX,this._lastY=t.offsetY,e&&null!=e[ke]){var o=e.dataModel||r.getSeriesByIndex(e[Ie]),s=e[ke],l=o[qe]()[M](s);"axis"===(l.get("tooltip.trigger")||n)?this._showAxisTooltip(i,r,t):(this._ticket="",this._hideAxisPointer(),this._resetLastHover(),this._showItemTooltipContent(o,s,e.dataType,t)),a[Ge]({type:"showTip",from:this.uid,dataIndex:e[ke],seriesIndex:e[Ie]})}else"item"===n?this._hide():this._showAxisTooltip(i,r,t),"cross"===i.get("axisPointer.type")&&a[Ge]({type:"showTip",from:this.uid,x:t.offsetX,y:t.offsetY})},_showAxisTooltip:function(t,i,n){var r=t[ri]("axisPointer"),a=r.get("type");if("cross"===a){var o=n[De];if(o&&null!=o[ke]){var s=i.getSeriesByIndex(o[Ie]),l=o[ke];this._showItemTooltipContent(s,l,o.dataType,n)}}this._showAxisPointer();var u=!0;b.each(this._seriesGroupByAxis,function(t){var i=t.coordSys,o=i[0],s=[n.offsetX,n.offsetY];if(!o.containPoint(s))return void this._hideAxisPointer(o.name);u=!1;var l=o[w],c=o.pointToData(s,!0);s=o[f](c);var h=o[F](),d=r.get("axis");"auto"===d&&(d=h.dim);var p=!1,v=this._lastHover;if("cross"===a)e(v.data,c)&&(p=!0),v.data=c;else{var m=b[ge](l,d);v.data===c[m]&&(p=!0),v.data=c[m]}"cartesian2d"!==o.type||p?"polar"!==o.type||p?"singleAxis"!==o.type||p||this._showSinglePointer(r,o,d,s):this._showPolarPointer(r,o,d,s):this._showCartesianPointer(r,o,d,s),"cross"!==a&&this._dispatchAndShowSeriesTooltipContent(o,t[Ee],s,c,p)},this),this._tooltipModel.get("show")||this._hideAxisPointer(),u&&this._hide()},_showCartesianPointer:function(t,e,r,a){function o(n,r,a){var o="x"===n?i(r[0],a[0],r[0],a[1]):i(a[0],r[1],a[1],r[1]),s=l._getPointerElement(e,t,n,o);c?x.updateProps(s,{shape:o},t):s.attr({shape:o})}function s(i,r,a){var o=e[p](i),s=o.getBandWidth(),u=a[1]-a[0],h="x"===i?n(r[0]-s/2,a[0],s,u):n(a[0],r[1]-s/2,u,s),d=l._getPointerElement(e,t,i,h);c?x.updateProps(d,{shape:h},t):d.attr({shape:h})}var l=this,u=t.get("type"),c="cross"!==u&&e[F]().type===v;if("cross"===u)o("x",a,e[p]("y").getGlobalExtent()),o("y",a,e[p]("x").getGlobalExtent()),this._updateCrossText(e,a,t);else{var h=e[p]("x"===r?"y":"x"),d=h.getGlobalExtent();"cartesian2d"===e.type&&("line"===u?o:s)(r,a,d)}},_showSinglePointer:function(t,e,n,r){function a(n,r,a){var s=e[p](),u=s.orient,c="horizontal"===u?i(r[0],a[0],r[0],a[1]):i(a[0],r[1],a[1],r[1]),h=o._getPointerElement(e,t,n,c);l?x.updateProps(h,{shape:c},t):h.attr({shape:c})}var o=this,s=t.get("type"),l="cross"!==s&&e[F]().type===v,u=e[pe](),c=[u.y,u.y+u[Ye]];a(n,r,c)},_showPolarPointer:function(t,e,n,r){function a(n,r,a){var o,s=e.pointToCoord(r);if("angle"===n){var u=e.coordToPoint([a[0],s[1]]),c=e.coordToPoint([a[1],s[1]]);o=i(u[0],u[1],c[0],c[1])}else o={cx:e.cx,cy:e.cy,r:s[0]};var h=l._getPointerElement(e,t,n,o);f?x.updateProps(h,{shape:o},t):h.attr({shape:o})}function s(i,n,r){var a,s=e[p](i),u=s.getBandWidth(),c=e.pointToCoord(n),h=Math.PI/180;a="angle"===i?o(e.cx,e.cy,r[0],r[1],(-c[1]-u/2)*h,(-c[1]+u/2)*h):o(e.cx,e.cy,c[0]-u/2,c[0]+u/2,0,2*Math.PI);var d=l._getPointerElement(e,t,i,a);f?x.updateProps(d,{shape:a},t):d.attr({shape:a})}var l=this,c=t.get("type"),h=e.getAngleAxis(),d=e.getRadiusAxis(),f="cross"!==c&&e[F]().type===v;if("cross"===c)a("angle",r,d[K]()),a(u,r,h[K]()),this._updateCrossText(e,r,t);else{var m=e[p](n===u?"angle":u),g=m[K]();("line"===c?a:s)(n,r,g)}},_updateCrossText:function(t,e,i){var n=i[ri]("crossStyle"),r=n[ri](de),a=this._tooltipModel,o=this._crossText;o||(o=this._crossText=new x.Text({style:{textAlign:"left",textVerticalAlign:"bottom"}}),this.group.add(o));var s=t.pointToData(e),l=t[w];s=b.map(s,function(e,i){var n=t[p](l[i]);return e=n.type===v||"time"===n.type?n.scale[te](e):S.addCommas(e[m](n.getPixelPrecision()))}),o[Le]({fill:r[ue]()||n.get("color"),textFont:r[ce](),text:s.join(", "),x:e[0]+5,y:e[1]-5}),o.z=a.get("z"),o[Ce]=a.get(Ce)},_getPointerElement:function(t,e,i,n){var r=this._tooltipModel,a=r.get("z"),o=r.get(Ce),s=this._axisPointers,l=t.name;if(s[l]=s[l]||{},s[l][i])return s[l][i];var c=e.get("type"),h=e[ri](c+"Style"),d="shadow"===c,f=h[d?"getAreaStyle":"getLineStyle"](),p="polar"===t.type?d?"Sector":i===u?"Circle":"Line":d?"Rect":"Line";d?f[P]=null:f.fill=null;var v=s[l][i]=new x[p]({style:f,z:a,zlevel:o,silent:!0,shape:n});
    return this.group.add(v),v},_dispatchAndShowSeriesTooltipContent:function(t,e,i,n,r){var a=this._tooltipModel,o=this._tooltipContent,s=t[F](),l=b.map(e,function(t){return{seriesIndex:t[Ie],dataIndex:t.getAxisTooltipDataIndex?t.getAxisTooltipDataIndex(t.coordDimToDataDim(s.dim),n,s):t[qe]().indexOfNearest(t.coordDimToDataDim(s.dim)[0],n["x"===s.dim||s.dim===u?0:1])}}),h=this._lastHover,d=this._api;if(h.payloadBatch&&!r&&d[Ge]({type:"downplay",batch:h.payloadBatch}),r||(d[Ge]({type:"highlight",batch:l}),h.payloadBatch=l),d[Ge]({type:"showTip",dataIndex:l[0][ke],seriesIndex:l[0][Ie],from:this.uid}),s&&a.get("showContent")&&a.get("show")){var f,p=a.get("formatter"),v=a.get(re),m=b.map(e,function(t,e){return t[Pe](l[e][ke])});o.show(a);var g=l[0][ke];if(!r){if(this._ticket="",p){if(typeof p===oi)f=S.formatTpl(p,m);else if(typeof p===Me){var y=this,_="axis_"+t.name+"_"+g,x=function(t,e){t===y._ticket&&(o.setContent(e),c(v,i[0],i[1],o,m,null,d))};y._ticket=_,f=p(m,_,x)}}else{var w=e[0][qe]()[G](g);f=(w?w+"<br />":"")+b.map(e,function(t,e){return t.formatTooltip(l[e][ke],!0)}).join("<br />")}o.setContent(f)}c(v,i[0],i[1],o,m,null,d)}},_showItemTooltipContent:function(t,e,i,n){var r=this._api,a=t[qe](i),o=a[M](e),s=this._tooltipModel,l=this._tooltipContent,u=o[ri]("tooltip");if(u.parentModel?u.parentModel.parentModel=s:u.parentModel=this._tooltipModel,u.get("showContent")&&u.get("show")){var h,d=u.get("formatter"),f=u.get(re),p=t[Pe](e,i);if(d){if(typeof d===oi)h=S.formatTpl(d,p);else if(typeof d===Me){var v=this,m="item_"+t.name+"_"+e,g=function(t,e){t===v._ticket&&(l.setContent(e),c(f,n.offsetX,n.offsetY,l,p,n[De],r))};v._ticket=m,h=d(p,m,g)}}else h=t.formatTooltip(e,!1,i);l.show(u),l.setContent(h),c(f,n.offsetX,n.offsetY,l,p,n[De],r)}},_showAxisPointer:function(t){if(t){var e=this._axisPointers[t];e&&b.each(e,function(t){t.show()})}else this.group.eachChild(function(t){t.show()}),this.group.show()},_resetLastHover:function(){var t=this._lastHover;t.payloadBatch&&this._api[Ge]({type:"downplay",batch:t.payloadBatch}),this._lastHover={}},_hideAxisPointer:function(t){if(t){var e=this._axisPointers[t];e&&b.each(e,function(t){t.hide()})}else this.group.children()[Ne]&&this.group.hide()},_hide:function(){clearTimeout(this._showTimeout),this._hideAxisPointer(),this._resetLastHover(),this._alwaysShowContent||this._tooltipContent.hideLater(this._tooltipModel.get("hideDelay")),this._api[Ge]({type:"hideTip",from:this.uid}),this._lastX=this._lastY=null},dispose:function(t,e){if(!A.node){var i=e.getZr();this._tooltipContent.hide(),i.off("click",this._tryShow),i.off("mousemove",this._mousemove),i.off(ze,this._hide),i.off("globalout",this._hide),e.off("showTip",this._manuallyShowTip),e.off("hideTip",this._manuallyHideTip)}}})}),e("echarts/component/marker/MarkPointModel",[fi,"./MarkerModel"],function(t){return t("./MarkerModel")[He]({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{normal:{show:!0,position:"inside"},emphasis:{show:!0}},itemStyle:{normal:{borderWidth:2}}}})}),e("echarts/component/marker/MarkPointView",[fi,"../../chart/helper/SymbolDraw",hi,a,"../../data/List","./markerHelper","./MarkerView"],function(t){function e(t,e,i){var n=e[fe];t.each(function(r){var a,s=t[M](r),l=o[g](s.get("x"),i[ni]()),u=o[g](s.get("y"),i[ii]());if(isNaN(l)||isNaN(u)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t[w],r));else if(n){var c=t.get(n[w][0],r),h=t.get(n[w][1],r);a=n[f]([c,h])}}else a=[l,u];isNaN(l)||(a[0]=l),isNaN(u)||(a[1]=u),t.setItemLayout(r,a)})}function i(t,e,i){var n;n=t?r.map(t&&t[w],function(t){var i=e[qe]().getDimensionInfo(e.coordDimToDataDim(t)[0])||{};return i.name=t,i}):[{name:"value",type:"float"}];var a=new l(n,i),o=r.map(i.get("data"),r.curry(u.dataTransform,e));return t&&(o=r[ye](o,r.curry(u.dataFilter,t))),a.initData(o,null,t?u.dimValueGetter:function(t){return t.value}),a}var n=t("../../chart/helper/SymbolDraw"),r=t(hi),o=t(a),l=t("../../data/List"),u=t("./markerHelper");t("./MarkerView")[He]({type:"markPoint",updateLayout:function(t,i,n){i[Ue](function(t){var i=t.markPointModel;i&&(e(i[qe](),t,n),this.markerGroupMap[t.name].updateLayout(i))},this)},renderSeries:function(t,r,a,o){var l=t[fe],u=t.name,c=t[qe](),h=this.markerGroupMap,d=h[u];d||(d=h[u]=new n);var f=i(l,t,r);r.setData(f),e(r[qe](),t,o),f.each(function(t){var e=f[M](t),i=e[N]("symbolSize");typeof i===Me&&(i=i(r[H](t),r[Pe](t))),f.setItemVisual(t,{symbolSize:i,color:e.get("itemStyle.normal.color")||c.getVisual("color"),symbol:e[N](s)})}),d.updateData(f),this.group.add(d.group),f.eachItemGraphicEl(function(t){t[Ae](function(t){t.dataModel=r})}),d.__keep=!0,d.group.silent=r.get("silent")||t.get("silent")}})}),e("echarts/component/dataZoom/typeDefaulter",[fi,"../../model/Component"],function(t){t("../../model/Component").registerSubTypeDefaulter("dataZoom",function(){return"slider"})}),e("echarts/component/dataZoom/DataZoomModel",[fi,hi,di,h,o,"./AxisProxy"],function(t){function e(t){var e={};return u(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function i(t,e,i,n){null!=i[e]&&null==i[t]&&(n[t]=null)}var n=t(hi),r=t(di),a=t(h),s=t(o),l=t("./AxisProxy"),u=n.each,c=s.eachAxisDim,d=a[be]({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis",Ee],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,angleAxisIndex:null,radiusAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null},init:function(t,i,n){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0;var r=e(t);this[q](t,n),this.doInit(r)},mergeOption:function(t){var i=e(t);n.merge(this[Y],t,!0),this.doInit(i)},doInit:function(t){var e=this[Y];r[ei]||(e.realtime=!1),this._setDefaultThrottle(t),i("start","startValue",t,e),i("end","endValue",t,e),this.textStyleModel=this[ri](de),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,r){var a=this.dependentModels[e.axis][i],o=a.__dzAxisProxy||(a.__dzAxisProxy=new l(e.name,i,this,r));t[e.name+"_"+i]=o},this)},_resetTarget:function(){var t=this[Y],e=this._judgeAutoMode();c(function(e){var i=e.axisIndex;t[i]=s.normalizeToArray(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this[Y],e=!1;c(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this[Y];if(t){var r="vertical"===e?{dim:"y",axisIndex:"yAxisIndex",axis:"yAxis"}:{dim:"x",axisIndex:"xAxisIndex",axis:"xAxis"};this.dependentModels[r.axis][Ne]&&(i[r.axisIndex]=[0],t=!1)}t&&c(function(e){if(t){var n=[],r=this.dependentModels[e.axis];if(r[Ne]&&!n[Ne])for(var a=0,o=r[Ne];o>a;a++)r[a].get("type")===v&&n.push(a);i[e.axisIndex]=n,n[Ne]&&(t=!1)}},this),t&&this[W][Ue](function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&c(function(e){var r=i[e.axisIndex],a=t.get(e.axisIndex);n[ge](r,a)<0&&r.push(a)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this[Y].orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var i=!0;return c(function(n){var r=t.get(n.axisIndex),a=this.dependentModels[n.axis][r];a&&a.get("type")===e||(i=!1)},this),i},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this[W][Y];this[Y].throttle=e[B]&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return c(function(e){if(null==t){var i=this.get(e.axisIndex);i[Ne]&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this[W];c(function(n){u(this.get(n.axisIndex),function(r){t.call(e,n,r,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},setRawRange:function(t){u(["start","end","startValue","endValue"],function(e){this[Y][e]=t[e]},this)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();return t?t.getDataPercentWindow():void 0},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(){var t=this._axisProxies;for(var e in t)if(t.hasOwnProperty(e)&&t[e].hostedBy(this))return t[e];for(var e in t)if(t.hasOwnProperty(e)&&!t[e].hostedBy(this))return t[e]}});return d}),e("echarts/component/dataZoom/DataZoomView",[fi,"../../view/Component"],function(t){var e=t("../../view/Component");return e[He]({type:"dataZoom",render:function(t,e,i){this.dataZoomModel=t,this[W]=e,this.api=i},getTargetInfo:function(){function t(t,e,i,n){for(var r,a=0;a<i[Ne];a++)if(i[a].model===t){r=i[a];break}r||i.push(r={model:t,axisModels:[],coordIndex:n}),r.axisModels.push(e)}var e=this.dataZoomModel,i=this[W],n=[],r=[],a=[];return e.eachTargetAxis(function(e,o){var s=i[U](e.axis,o);if(s){a.push(s);var l=s.get("gridIndex"),u=s.get("polarIndex");if(null!=l){var c=i[U]("grid",l);t(c,s,n,l)}else if(null!=u){var c=i[U]("polar",u);t(c,s,r,u)}}},this),{cartesians:n,polars:r,axisModels:a}}})}),e("echarts/component/dataZoom/SliderZoomModel",[fi,"./DataZoomModel"],function(t){var e=t("./DataZoomModel"),i=e[He]({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});return i}),e("echarts/component/dataZoom/SliderZoomView",[fi,hi,d,"../../util/throttle","./DataZoomView",a,"../../util/layout","../helper/sliderMove"],function(t){function e(t){return"x"===t?"y":"x"}var i=t(hi),r=t(d),o=t("../../util/throttle"),s=t("./DataZoomView"),l=r.Rect,u=t(a),c=u[y],h=t("../../util/layout"),f=t("../helper/sliderMove"),p=u.asc,_=i.bind,b=i.each,w=7,M=1,T=30,L="horizontal",A="vertical",P=5,I=["line","bar","candlestick","scatter"],z=s[He]({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){return z.superApply(this,"render",arguments),o.createOrUpdate(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),this.dataZoomModel.get("show")===!1?void this.group[ve]():(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),void this._updateView())},remove:function(){z.superApply(this,Fe,arguments),o.clear(this,"_dispatchZoomAction")},dispose:function(){z.superApply(this,Ve,arguments),o.clear(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t[ve](),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new r.Group;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,r=this._findCoordRect(),a={width:e[ni](),height:e[ii]()},o=this._orient===L?{right:a.width-r.x-r.width,top:a[Ye]-T-w,width:r.width,height:T}:{right:w,top:r.y,width:T,height:r[Ye]},s=h.getLayoutParams(t[Y]);i.each(["right","top","width",Ye],function(t){"ph"===s[t]&&(s[t]=o[t])});var l=h[se](s,a,t.padding);this._location={x:l.x,y:l.y},this._size=[l.width,l[Ye]],this._orient===A&&this._size[n]()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),r=n&&n.get("inverse"),a=this._displayables.barGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==L||r?i===L&&r?{scale:o?[-1,1]:[-1,-1]}:i!==A||r?{scale:o?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:o?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:o?[1,1]:[1,-1]});var s=t[le]([a]);t.attr(re,[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size;this._displayables.barGroup.add(new l({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get(ti)},z2:-40}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,n=t[Ee],a=n.getRawData(),o=n.getShadowDim?n.getShadowDim():t.otherDim,s=a[x](o),l=.3*(s[1]-s[0]);s=[s[0]-l,s[1]+l];var u=[0,e[1]],h=[0,e[0]],d=[[e[0],0],[0,0]],f=[],p=h[1]/(a.count()-1),v=0,m=Math.round(a.count()/e[0]);a.each([o],function(t,e){if(m>0&&e%m)return void(v+=p);var i=null==t||isNaN(t)||""===t?null:c(t,s,u,!0);null!=i&&(d.push([v,i]),f.push([v,i])),v+=p});var g=this.dataZoomModel;this._displayables.barGroup.add(new r[D]({shape:{points:d},style:i[Ze]({fill:g.get("dataBackgroundColor")},g[ri]("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new r.Polyline({shape:{points:f},style:g[ri]("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,n=t.get("showDataShadow");if(n!==!1){var r,a=this[W];return t.eachTargetAxis(function(o,s){var l=t.getAxisProxy(o.name,s).getTargetSeriesModels();i.each(l,function(t){if(!(r||n!==!0&&i[ge](I,t.get("type"))<0)){var l=e(o.name),u=a[U](o.axis,s).axis;r={thisAxis:u,series:t,thisDim:o.name,otherDim:l,otherAxisInverse:t[fe].getOtherAxis(u).inverse}}},this)},this),r}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,a=this._size,o=this.dataZoomModel;n.add(t.filler=new l({draggable:!0,cursor:"move",drift:_(this._onDragMove,this,"all"),ondragstart:_(this._showDataInfo,this,!0),ondragend:_(this._onDragEnd,this),onmouseover:_(this._showDataInfo,this,!0),onmouseout:_(this._showDataInfo,this,!1),style:{fill:o.get("fillerColor"),textPosition:"inside"}})),n.add(new l(r.subPixelOptimizeRect({silent:!0,shape:{x:0,y:0,width:a[0],height:a[1]},style:{stroke:o.get("dataBackgroundColor")||o.get("borderColor"),lineWidth:M,fill:"rgba(0,0,0,0)"}})));var s=o.get("handleIcon");b([0,1],function(t){var a=r.makePath(s,{style:{strokeNoScale:!0},rectHover:!0,cursor:"vertical"===this._orient?"ns-resize":"ew-resize",draggable:!0,drift:_(this._onDragMove,this,t),ondragend:_(this._onDragEnd,this),onmouseover:_(this._showDataInfo,this,!0),onmouseout:_(this._showDataInfo,this,!1)},{x:-.5,y:0,width:1,height:1},ae),l=a[le]();this._handleHeight=u[g](o.get("handleSize"),this._size[1]),this._handleWidth=l.width/l[Ye]*this._handleHeight,a[Le](o[ri]("handleStyle").getItemStyle());var c=o.get("handleColor");null!=c&&(a.style.fill=c),n.add(e[t]=a);var h=o.textStyleModel;this.group.add(i[t]=new r.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",fill:h[ue](),textFont:h[ce]()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[c(t[0],[0,100],e,!0),c(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this._handleEnds,n=this._getViewExtent();f(e,i,n,"all"===t||this.dataZoomModel.get("zoomLock")?"rigid":"cross",t),this._range=p([c(i[0],n,[0,100],!0),c(i[1],n,[0,100],!0)])},_updateView:function(){var t=this._displayables,e=this._handleEnds,i=p(e.slice()),n=this._size;b([0,1],function(i){var r=t.handles[i],a=this._handleHeight;r.attr({scale:[a,a],position:[e[i],n[1]/2-a/2]})},this),t.filler[S]({x:i[0],y:0,width:i[1]-i[0],height:n[1]}),this._updateDataInfo()},_updateDataInfo:function(){function t(t){var e=r.getTransform(i.handles[t][C],this.group),s=r.transformDirection(0===t?"right":"left",e),l=this._handleWidth/2+P,c=r[k]([u[t]+(0===t?-l:l),this._size[1]/2],e);n[t][Le]({x:c[0],y:c[1],textVerticalAlign:a===L?oe:s,textAlign:a===L?s:ae,text:o[t]})}var e=this.dataZoomModel,i=this._displayables,n=i.handleLabels,a=this._orient,o=["",""];if(e.get("showDetail")){var s,l;e.eachTargetAxis(function(t,i){s||(s=e.getAxisProxy(t.name,i).getDataValueWindow(),l=this[W][U](t.axis,i).axis)},this),s&&(o=[this._formatLabel(s[0],l),this._formatLabel(s[1],l)])}var u=p(this._handleEnds.slice());t.call(this,0),t.call(this,1)},_formatLabel:function(t,e){var n=this.dataZoomModel,r=n.get("labelFormatter");if(i.isFunction(r))return r(t);var a=n.get("labelPrecision");return(null==a||"auto"===a)&&(a=e.getPixelPrecision()),t=null==t&&isNaN(t)?"":e.type===v||"time"===e.type?e.scale[te](Math.round(t)):t[m](Math.min(a,20)),i.isString(r)&&(t=r[Te]("{value}",t)),t},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=this._applyBarTransform([e,i],!0);this._updateInterval(t,n[0]),this._updateView(),this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),this._dispatchZoomAction()},_dispatchZoomAction:function(){var t=this._range;this.api[Ge]({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_applyBarTransform:function(t,e){var i=this._displayables.barGroup.getLocalTransform();return r[k](t,i,e)},_findCoordRect:function(){var t,e=this.getTargetInfo();if(e.cartesians[Ne])t=e.cartesians[0].model[fe][pe]();else{var i=this.api[ni](),n=this.api[ii]();t={x:.2*i,y:.2*n,width:.6*i,height:.6*n}}return t}});return z}),e("echarts/component/dataZoom/InsideZoomModel",[fi,"./DataZoomModel"],function(t){return t("./DataZoomModel")[He]({type:"dataZoom.inside",defaultOption:{zoomLock:!1}})}),e("echarts/component/dataZoom/InsideZoomView",[fi,"./DataZoomView",hi,"../helper/sliderMove","./roams"],function(t){function e(t,e,i,r){e=e.slice();var a=r.axisModels[0];if(a){var o=n(t,a,i),l=o.signal*(e[1]-e[0])*o.pixel/o.pixelLength;return s(l,e,[0,100],"rigid"),e}}function i(t,e,i,a,o){i=i.slice();var s=o.axisModels[0];if(s){var l=n(e,s,a),u=l.pixel-l.pixelStart,c=u/l.pixelLength*(i[1]-i[0])+i[0];return t=Math.max(t,0),i[0]=(i[0]-c)*t+c,i[1]=(i[1]-c)*t+c,r(i)}}function n(t,e,i){var n=e.axis,r=i.rectProvider(),a={};return"x"===n.dim?(a.pixel=t[0],a.pixelLength=r.width,a.pixelStart=r.x,a.signal=n.inverse?1:-1):(a.pixel=t[1],a.pixelLength=r[Ye],a.pixelStart=r.y,a.signal=n.inverse?-1:1),a}function r(t){var e=[0,100];return!(t[0]<=e[1])&&(t[0]=e[1]),!(t[1]<=e[1])&&(t[1]=e[1]),!(t[0]>=e[0])&&(t[0]=e[0]),!(t[1]>=e[0])&&(t[1]=e[0]),t}var a=t("./DataZoomView"),o=t(hi),s=t("../helper/sliderMove"),l=t("./roams"),u=o.bind,c=a[He]({type:"dataZoom.inside",init:function(){this._range},render:function(t,e,i,n){c.superApply(this,"render",arguments),l.shouldRecordRange(n,t.id)&&(this._range=t.getPercentRange());var r=this.getTargetInfo().cartesians,a=o.map(r,function(t){return l.generateCoordId(t.model)});o.each(r,function(e){var n=e.model;l.register(i,{coordId:l.generateCoordId(n),allCoordIds:a,coordinateSystem:n[fe],dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:u(this._onPan,this,e),zoomGetRange:u(this._onZoom,this,e)})},this)},dispose:function(){l.unregister(this.api,this.dataZoomModel.id),c.superApply(this,Ve,arguments),this._range=null},_onPan:function(t,i,n,r){return this._range=e([n,r],this._range,i,t)},_onZoom:function(t,e,n,r,a){var o=this.dataZoomModel;return o[Y].zoomLock?this._range:this._range=i(1/n,[r,a],this._range,e,t,o)}});return c}),e("echarts/component/dataZoom/dataZoomProcessor",[fi,h],function(t){function e(t,e,i){i.getAxisProxy(t.name,e).reset(i)}function i(t,e,i){i.getAxisProxy(t.name,e).filterData(i)}var n=t(h);n.registerProcessor(function(t){t[Qe]("dataZoom",function(t){t.eachTargetAxis(e),t.eachTargetAxis(i)}),t[Qe]("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]})})})}),e("echarts/component/dataZoom/dataZoomAction",[fi,hi,o,h],function(t){var e=t(hi),i=t(o),n=t(h);n[we]("dataZoom",function(t,n){var r=i.createLinkedNodesFinder(e.bind(n[Qe],n,"dataZoom"),i.eachAxisDim,function(t,e){return t.get(e.axisIndex)}),a=[];n[Qe]({mainType:"dataZoom",query:t},function(t){a.push.apply(a,r(t).nodes)}),e.each(a,function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})})}),e("echarts/component/toolbox/ToolboxModel",[fi,"./featureManager",hi,h],function(t){var e=t("./featureManager"),i=t(hi),n=t(h)[be]({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},mergeDefaultAndTheme:function(){n.superApply(this,q,arguments),i.each(this[Y].feature,function(t,n){var r=e.get(n);r&&i.merge(t,r.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{normal:{borderColor:"#666",color:"none"},emphasis:{borderColor:"#3E98C5"}}}});return n}),e("echarts/component/toolbox/ToolboxView",[fi,"./featureManager",hi,d,"../../model/Model","../../data/DataDiffer","../helper/listComponent","zrender/contain/text",h],function(t){function e(t){return 0===t[ge]("my")}var i=t("./featureManager"),n=t(hi),r=t(d),a=t("../../model/Model"),o=t("../../data/DataDiffer"),s=t("../helper/listComponent"),l=t("zrender/contain/text");return t(h)[xe]({type:"toolbox",render:function(t,u,c,h){function d(n,r){var o,s=y[n],l=y[r],d=m[s],p=new a(d,t,t[W]);if(s&&!l){if(e(s))o={model:p,onclick:p[Y].onclick,featureName:s};else{var v=i.get(s);if(!v)return;o=new v(p,u,c)}g[s]=o}else{if(o=g[l],!o)return;o.model=p,o[W]=u,o.api=c}return!s&&l?void(o[Ve]&&o[Ve](u,c)):!p.get("show")||o.unusable?void(o[Fe]&&o[Fe](u,c)):(f(p,o,s),p.setIconStatus=function(t,e){var i=this[Y],n=this.iconPaths;i.iconStatus=i.iconStatus||{},i.iconStatus[t]=e,n[t]&&n[t][Be](e)},void(o.render&&o.render(p,u,c,h)))}function f(e,i,a){var o=e[ri]("iconStyle"),s=i.getIcons?i.getIcons():e.get("icon"),l=e.get("title")||{};if(typeof s===oi){var h=s,d=l;s={},l={},s[a]=h,l[a]=d}var f=e.iconPaths={};n.each(s,function(a,s){var h=o[ri](V).getItemStyle(),d=o[ri](E).getItemStyle(),m={x:-v/2,y:-v/2,width:v,height:v},g=0===a[ge]("image://")?(m.image=a.slice(8),new r.Image({style:m})):r.makePath(a[Te]("path://",""),{style:h,hoverStyle:d,rectHover:!0},m,ae);r[A](g),t.get("showTitle")&&(g.__title=l[s],g.on(Re,function(){g[Le]({text:l[s],textPosition:d.textPosition||$e,textFill:d.fill||d[P]||"#000",textAlign:d[he]||ae})}).on(ze,function(){g[Le]({textFill:null})})),g[Be](e.get("iconStatus."+s)||V),p.add(g),g.on("click",n.bind(i.onclick,i,u,c,s)),f[s]=g})}var p=this.group;if(p[ve](),t.get("show")){var v=+t.get("itemSize"),m=t.get("feature")||{},g=this._features||(this._features={}),y=[];n.each(m,function(t,e){y.push(e)}),new o(this._featureNames||[],y).add(d)[Xe](d)[Fe](n.curry(d,null)).execute(),this._featureNames=y,s.layout(p,t,c),s.addBackground(p,t),p.eachChild(function(t){var e=t.__title,i=t.hoverStyle;if(i&&e){var n=l[le](e,i.font),r=t[re][0]+p[re][0],a=t[re][1]+p[re][1]+v,o=!1;a+n[Ye]>c[ii]()&&(i.textPosition="top",o=!0);var s=o?-5-n[Ye]:v+8;r+n.width/2>c[ni]()?(i.textPosition=["100%",s],i[he]="right"):r-n.width/2<0&&(i.textPosition=[0,s],i[he]="left")}})}},updateView:function(t,e,i,r){n.each(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,r)})},updateLayout:function(t,e,i,r){n.each(this._features,function(t){t.updateLayout&&t.updateLayout(t.model,e,i,r)})},remove:function(t,e){n.each(this._features,function(i){i[Fe]&&i[Fe](t,e)}),this.group[ve]()},dispose:function(t,e){n.each(this._features,function(i){i[Ve]&&i[Ve](t,e)})}})}),e("echarts/component/toolbox/feature/SaveAsImage",[fi,di,"../featureManager"],function(t){function e(t){this.model=t}var i=t(di);e.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:"保存为图片",type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:["右键另存为图片"]},e[si].unusable=!i[ei];var n=e[si];return n.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",r=document[$]("a"),a=i.get("type",!0)||"png";r.download=n+"."+a,r[De]="_blank";var o=e.getConnectedDataURL({type:a,backgroundColor:i.get(ti,!0)||t.get(ti)||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(r.href=o,typeof MouseEvent===Me){var s=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});r.dispatchEvent(s)}else{var l=i.get("lang"),u='<body style="margin:0;"><img src="'+o+'" style="max-width:100%;" title="'+(l&&l[0]||"")+'" /></body>',c=window.open();c.document.write(u)}},t("../featureManager").register("saveAsImage",e),e}),e("echarts/component/toolbox/feature/MagicType",[fi,hi,"../../../echarts","../featureManager"],function(t){function e(t){this.model=t}var i=t(hi);e.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"},option:{},seriesIndex:{}};var n=e[si];n.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return i.each(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n};var r={line:function(t,e,n,r){return"bar"===t?i.merge({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.line")||{},!0):void 0},bar:function(t,e,n,r){return"line"===t?i.merge({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.bar")||{},!0):void 0},stack:function(t,e,n,r){return"line"===t||"bar"===t?i.merge({id:e,stack:"__ec_magicType_stack__"},r.get("option.stack")||{},!0):void 0},tiled:function(t,e,n,r){return"line"===t||"bar"===t?i.merge({id:e,stack:""},r.get("option.tiled")||{},!0):void 0}},a=[["line","bar"],["stack","tiled"]];n.onclick=function(t,e,n){var o=this.model,s=o.get("seriesIndex."+n);if(r[n]){var l={series:[]},u=function(t){var e=t.subType,a=t.id,s=r[n](e,a,t,o);s&&(i[Ze](s,t[Y]),l[Ee].push(s));var u=t[fe];if(u&&"cartesian2d"===u.type&&("line"===n||"bar"===n)){var c=u.getAxesByScale(b)[0];if(c){var h=c.dim,d=t.get(h+"AxisIndex"),f=h+"Axis";l[f]=l[f]||[];for(var p=0;d>=p;p++)l[f][d]=l[f][d]||{};l[f][d].boundaryGap="bar"===n?!0:!1}}};i.each(a,function(t){i[ge](t,n)>=0&&i.each(t,function(t){o.setIconStatus(t,V)})}),o.setIconStatus(n,E),t[Qe]({mainType:"series",query:null==s?null:{seriesIndex:s}},u),e[Ge]({type:"changeMagicType",currentType:n,newOption:l})}};var o=t("../../../echarts");return o[we]({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e[j](t.newOption)}),t("../featureManager").register("magicType",e),e}),e("echarts/component/toolbox/feature/DataView",[fi,hi,"zrender/core/event","../featureManager","../../../echarts"],function(t){function e(t){var e={},i=[],n=[];return t.eachRawSeries(function(t){var r=t[fe];if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)i.push(t);else{var a=r[F]();if(a.type===v){var o=a.dim+"_"+a.index;e[o]||(e[o]={categoryAxis:a,valueAxis:r.getOtherAxis(a),series:[]},n.push({axisDim:a.dim,axisIndex:a.index})),e[o][Ee].push(t)}else i.push(t)}}),{seriesGroupByCategoryAxis:e,other:i,meta:n}}function i(t){var e=[];return d.each(t,function(t){var i=t.categoryAxis,n=t.valueAxis,r=n.dim,a=[" "][X](d.map(t[Ee],function(t){return t.name})),o=[i.model.getCategories()];d.each(t[Ee],function(t){o.push(t.getRawData()[_](r,function(t){return t}))});for(var s=[a.join(m)],l=0;l<o[0][Ne];l++){for(var u=[],c=0;c<o[Ne];c++)u.push(o[c][l]);s.push(u.join(m))}e.push(s.join("\n"))}),e.join("\n\n"+p+"\n\n")}function n(t){return d.map(t,function(t){var e=t.getRawData(),i=[t.name],n=[];return e.each(e[w],function(){for(var t=arguments[Ne],r=arguments[t-1],a=e[G](r),o=0;t-1>o;o++)n[o]=arguments[o];i.push((a?a+m:"")+n.join(m))}),i.join("\n")}).join("\n\n"+p+"\n\n")}function r(t){var r=e(t);return{value:d[ye]([i(r.seriesGroupByCategoryAxis),n(r.other)],function(t){return t[Te](/[\n\t\s]/g,"")}).join("\n\n"+p+"\n\n"),meta:r.meta}}function a(t){return t[Te](/^\s\s*/,"")[Te](/\s\s*$/,"")}function o(t){var e=t.slice(0,t[ge]("\n"));return e[ge](m)>=0?!0:void 0}function s(t){for(var e=t.split(/\n+/g),i=a(e.shift()).split(g),n=[],r=d.map(i,function(t){return{name:t,data:[]}}),o=0;o<e[Ne];o++){var s=a(e[o]).split(g);n.push(s.shift());for(var l=0;l<s[Ne];l++)r[l]&&(r[l].data[o]=s[l])}return{series:r,categories:n}}function l(t){for(var e=t.split(/\n+/g),i=a(e.shift()),n=[],r=0;r<e[Ne];r++){var o,s=a(e[r]).split(g),l="",u=!1;isNaN(s[0])?(u=!0,l=s[0],s=s.slice(1),n[r]={name:l,value:[]},o=n[r].value):o=n[r]=[];for(var c=0;c<s[Ne];c++)o.push(+s[c]);1===o[Ne]&&(u?n[r].value=o[0]:n[r]=o[0])}return{name:i,data:n}}function u(t,e){var i=t.split(new RegExp("\n*"+p+"\n*","g")),n={series:[]};return d.each(i,function(t,i){if(o(t)){var r=s(t),a=e[i],u=a.axisDim+"Axis";a&&(n[u]=n[u]||[],n[u][a.axisIndex]={data:r.categories},n[Ee]=n[Ee][X](r[Ee]))}else{var r=l(t);n[Ee].push(r)}}),n}function c(t){this._dom=null,this.model=t}function h(t,e){return d.map(t,function(t,i){var n=e&&e[i];return d[We](n)&&!d[Se](n)?(d[We](t)&&!d[Se](t)&&(t=t.value),d[Ze]({value:t},n)):t})}var d=t(hi),f=t("zrender/core/event"),p=new Array(60).join("-"),m="	",g=new RegExp("["+m+"]+","g");return c.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:"数据视图",lang:["数据视图","关闭","刷新"],backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},c[si].onclick=function(t,e){function i(){n.removeChild(o),S._dom=null}var n=e.getDom(),a=this.model;this._dom&&n.removeChild(this._dom);var o=document[$]("div");o.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",o.style[ti]=a.get(ti)||"#fff";var s=document[$]("h4"),l=a.get("lang")||[];s.innerHTML=l[0]||a.get("title"),s.style.cssText="margin: 10px 20px;",s.style.color=a.get("textColor");var c=document[$]("div"),h=document[$]("textarea");c.style.cssText="display:block;width:100%;overflow:hidden;";var p=a.get("optionToContent"),v=a.get("contentToOption"),g=r(t);if(typeof p===Me){var y=p(e.getOption());typeof y===oi?c.innerHTML=y:d.isDom(y)&&c.appendChild(y)}else c.appendChild(h),h.readOnly=a.get("readOnly"),h.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",h.style.color=a.get("textColor"),h.style.borderColor=a.get("textareaBorderColor"),h.style[ti]=a.get("textareaColor"),h.value=g.value;var _=g.meta,x=document[$]("div");x.style.cssText="position:absolute;bottom:0;left:0;right:0;";var b="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",w=document[$]("div"),M=document[$]("div");b+=";background-color:"+a.get("buttonColor"),b+=";color:"+a.get("buttonTextColor");var S=this;f.addEventListener(w,"click",i),f.addEventListener(M,"click",function(){var t;
    try{t=typeof v===Me?v(c,e.getOption()):u(h.value,_)}catch(n){throw i(),new Error("Data view format error "+n)}t&&e[Ge]({type:"changeDataView",newOption:t}),i()}),w.innerHTML=l[1],M.innerHTML=l[2],M.style.cssText=b,w.style.cssText=b,!a.get("readOnly")&&x.appendChild(M),x.appendChild(w),f.addEventListener(h,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,i=this.selectionStart,n=this.selectionEnd;this.value=e.substring(0,i)+m+e.substring(n),this.selectionStart=this.selectionEnd=i+1,f.stop(t)}}),o.appendChild(s),o.appendChild(c),o.appendChild(x),c.style[Ye]=n.clientHeight-80+"px",n.appendChild(o),this._dom=o},c[si][Fe]=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},c[si][Ve]=function(t,e){this[Fe](t,e)},t("../featureManager").register("dataView",c),t("../../../echarts")[we]({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var i=[];d.each(t.newOption[Ee],function(t){var n=e.getSeriesByName(t.name)[0];if(n){var r=n.get("data");i.push({name:t.name,data:h(t.data,r)})}else i.push(d[He]({type:"scatter"},t))}),e[j](d[Ze]({series:i},t.newOption))}),c}),e("echarts/component/toolbox/feature/DataZoom",[fi,hi,"../../helper/BrushController","../../helper/brushHelper","../../dataZoom/history","../../dataZoomSelect","../featureManager","../../../echarts"],function(t){function e(t,e,i){(this._brushController=new o(i.getZr())).on("brush",a.bind(this._onBrush,this)).mount(),this._isZoomActive}function i(t){var e={};return a.each(["xAxisIndex","yAxisIndex"],function(i){e[i]=t[i],null==e[i]&&(e[i]="all"),(e[i]===!1||"none"===e[i])&&(e[i]=[])}),e}function n(t,e){t.setIconStatus("back",l.count(e)>1?E:V)}function r(t,e,n,r){var a=n._isZoomActive;r&&"takeGlobalCursor"===r.type&&(a="dataZoomSelect"===r.key?r.dataZoomSelectActive:!1),n._isZoomActive=a,t.setIconStatus("zoom",a?E:V);var o=s.makeCoordInfoList(i(t[Y]),e),l=o.xAxisHas&&!o.yAxisHas?"lineX":!o.xAxisHas&&o.yAxisHas?"lineY":"rect";n._brushController.setPanels(s.makePanelOpts(o)).enableBrush(a?{brushType:l,brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}}:!1)}var a=t(hi),o=t("../../helper/BrushController"),s=t("../../helper/brushHelper"),l=t("../../dataZoom/history"),u=a.each;t("../../dataZoomSelect");var c="\x00_ec_\x00toolbox-dataZoom_";e.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:{zoom:"区域缩放",back:"区域缩放还原"}};var h=e[si];h.render=function(t,e,i,a){this.model=t,this[W]=e,this.api=i,r(t,e,this,a),n(t,e)},h.onclick=function(t,e,i){d[i].call(this)},h[Fe]=function(){this._brushController.unmount()},h[Ve]=function(){this._brushController[Ve]()};var d={zoom:function(){var t=!this._isZoomActive;this.api[Ge]({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(l.pop(this[W]))}};return h._onBrush=function(t,e){function n(t,e,i){var n=r(t,i[t],o);n&&(a[n.id]={dataZoomId:n.id,startValue:e[0],endValue:e[1]})}function r(t,e,i){var n;return i[Qe]({mainType:"dataZoom",subType:"select"},function(r){var a=r.get(t+"Index");null!=a&&i[U](t,a)===e&&(n=r)}),n}if(e.isEnd&&t[Ne]){var a={},o=this[W];this._brushController.updateCovers([]);var u=s.makeCoordInfoList(i(this.model[Y]),o),c=[];s.parseOutputRanges(t,u,o,c);var h=t[0],d=c[0],f=h.coordRange,p=h.brushType;if(d&&f)if("rect"===p)n("xAxis",f[0],d),n("yAxis",f[1],d);else{var v={lineX:"xAxis",lineY:"yAxis"};n(v[p],f,d)}l.push(o,a),this._dispatchZoomAction(a)}},h._dispatchZoomAction=function(t){var e=[];u(t,function(t){e.push(a.clone(t))}),e[Ne]&&this.api[Ge]({type:"dataZoom",from:this.uid,batch:e})},t("../featureManager").register("dataZoom",e),t("../../../echarts").registerPreprocessor(function(t){function e(t,e){if(e){var r=t+"Index",o=e[r];null==o||"all"==o||a[Se](o)||(o=o===!1||"none"===o?[]:[o]),i(t,function(e,i){if(null==o||"all"==o||-1!==a[ge](o,i)){var s={type:"select",$fromToolbox:!0,id:c+t+i};s[r]=i,n.push(s)}})}}function i(e,i){var n=t[e];a[Se](n)||(n=n?[n]:[]),u(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);a[Se](n)||(t.dataZoom=n=[n]);var r=t.toolbox;if(r&&(a[Se](r)&&(r=r[0]),r&&r.feature)){var o=r.feature.dataZoom;e("xAxis",o),e("yAxis",o)}}}),e}),e("echarts/component/toolbox/feature/Restore",[fi,"../../dataZoom/history","../featureManager","../../../echarts"],function(t){function e(t){this.model=t}var i=t("../../dataZoom/history");e.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:"还原"};var n=e[si];return n.onclick=function(t,e){i.clear(t),e[Ge]({type:"restore",from:this.uid})},t("../featureManager").register("restore",e),t("../../../echarts")[we]({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")}),e}),e("zrender/vml/graphic",[fi,"../core/env","../core/vector","../core/BoundingRect","../core/PathProxy","../tool/color","../contain/text","../graphic/mixin/RectText","../graphic/Displayable","../graphic/Image","../graphic/Text","../graphic/Path","../graphic/Gradient","./core"],function(t){if(!t("../core/env")[ei]){var e=t("../core/vector"),i=t("../core/BoundingRect"),n=t("../core/PathProxy").CMD,a=t("../tool/color"),o=t("../contain/text"),s=t("../graphic/mixin/RectText"),l=t("../graphic/Displayable"),u=t("../graphic/Image"),c=t("../graphic/Text"),h=t("../graphic/Path"),d=t("../graphic/Gradient"),f=t("./core"),p=Math.round,v=Math.sqrt,g=Math.abs,y=Math.cos,_=Math.sin,x=Math.max,b=e[k],w=",",M="progid:DXImageTransform.Microsoft",S=21600,T=S/2,C=1e5,L=1e3,A=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=S+","+S,t.coordorigin="0,0"},D=function(t){return String(t)[Te](/&/g,"&amp;")[Te](/"/g,"&quot;")},z=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},R=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},O=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},E=function(t,e,i){return(parseFloat(t)||0)*C+(parseFloat(e)||0)*L+i},B=function(t,e){return typeof t===oi?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},N=function(t,e,i){var n=a.parse(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=z(n[0],n[1],n[2]),t[ne]=i*n[3])},Z=function(t){var e=a.parse(t);return[z(e[0],e[1],e[2]),e[3]]},G=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof d){var a,o=0,s=[0,0],l=0,u=1,c=i[le](),h=c.width,f=c[Ye];if("linear"===n.type){a="gradient";var p=i[r],v=[n.x*h,n.y*f],m=[n.x2*h,n.y2*f];p&&(b(v,v,p),b(m,m,p));var g=m[0]-v[0],y=m[1]-v[1];o=180*Math.atan2(g,y)/Math.PI,0>o&&(o+=360),1e-6>o&&(o=0)}else{a="gradientradial";var v=[n.x*h,n.y*f],p=i[r],_=i.scale,w=h,M=f;s=[(v[0]-c.x)/w,(v[1]-c.y)/M],p&&b(v,v,p),w/=_[0]*S,M/=_[1]*S;var T=x(w,M);l=0/T,u=2*n.r/T-l}var C=n.colorStops.slice();C.sort(function(t,e){return t.offset-e.offset});for(var L=C[Ne],A=[],P=[],I=0;L>I;I++){var k=C[I],D=Z(k.color);P.push(k.offset*u+l+" "+D[0]),(0===I||I===L-1)&&A.push(D)}if(L>=2){var z=A[0][0],R=A[1][0],O=A[0][1]*e[ne],V=A[1][1]*e[ne];t.type=a,t.method="none",t.focus="100%",t.angle=o,t.color=z,t.color2=R,t.colors=P.join(","),t[ne]=V,t.opacity2=O}"radial"===a&&(t.focusposition=s.join(","))}else N(t,n,e[ne])},H=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e[P]||e[P]instanceof d||N(t,e[P],e[ne])},F=function(t,e,i,n){var r="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(r||!r&&i[I])?(t[r?"filled":"stroked"]="true",i[e]instanceof d&&O(t,a),a||(a=f.createNode(e)),r?G(a,i,n):H(a,i),R(t,a)):(t[r?"filled":"stroked"]="false",O(t,a))},W=[[],[],[]],q=function(t,e){var i,r,a,o,s,l,u=n.M,c=n.C,h=n.L,d=n.A,f=n.Q,m=[];for(o=0;o<t[Ne];){switch(a=t[o++],r="",i=0,a){case u:r=" m ",i=1,s=t[o++],l=t[o++],W[0][0]=s,W[0][1]=l;break;case h:r=" l ",i=1,s=t[o++],l=t[o++],W[0][0]=s,W[0][1]=l;break;case f:case c:r=" c ",i=3;var g,x,M=t[o++],C=t[o++],L=t[o++],A=t[o++];a===f?(g=L,x=A,L=(L+2*M)/3,A=(A+2*C)/3,M=(s+2*M)/3,C=(l+2*C)/3):(g=t[o++],x=t[o++]),W[0][0]=M,W[0][1]=C,W[1][0]=L,W[1][1]=A,W[2][0]=g,W[2][1]=x,s=g,l=x;break;case d:var P=0,I=0,k=1,D=1,z=0;e&&(P=e[4],I=e[5],k=v(e[0]*e[0]+e[1]*e[1]),D=v(e[2]*e[2]+e[3]*e[3]),z=Math.atan2(-e[1]/D,e[0]/k));var R=t[o++],O=t[o++],V=t[o++],E=t[o++],B=t[o++]+z,N=t[o++]+B+z;o++;var Z=t[o++],G=R+y(B)*V,H=O+_(B)*E,M=R+y(N)*V,C=O+_(N)*E,F=Z?" wa ":" at ";Math.abs(G-M)<1e-10&&(Math.abs(N-B)>.01?Z&&(G+=270/S):Math.abs(H-O)<1e-10?Z&&R>G||!Z&&G>R?C-=270/S:C+=270/S:Z&&O>H||!Z&&H>O?M+=270/S:M-=270/S),m.push(F,p(((R-V)*k+P)*S-T),w,p(((O-E)*D+I)*S-T),w,p(((R+V)*k+P)*S-T),w,p(((O+E)*D+I)*S-T),w,p((G*k+P)*S-T),w,p((H*D+I)*S-T),w,p((M*k+P)*S-T),w,p((C*D+I)*S-T)),s=M,l=C;break;case n.R:var q=W[0],U=W[1];q[0]=t[o++],q[1]=t[o++],U[0]=q[0]+t[o++],U[1]=q[1]+t[o++],e&&(b(q,q,e),b(U,U,e)),q[0]=p(q[0]*S-T),U[0]=p(U[0]*S-T),q[1]=p(q[1]*S-T),U[1]=p(U[1]*S-T),m.push(" m ",q[0],w,q[1]," l ",U[0],w,q[1]," l ",U[0],w,U[1]," l ",q[0],w,U[1]);break;case n.Z:m.push(" x ")}if(i>0){m.push(r);for(var X=0;i>X;X++){var j=W[X];e&&b(j,j,e),m.push(p(j[0]*S-T),w,p(j[1]*S-T),i-1>X?w:"")}}}return m.join("")};h[si].brushVML=function(t){var e=this.style,i=this._vmlEl;i||(i=f.createNode("shape"),A(i),this._vmlEl=i),F(i,"fill",e,this),F(i,P,e,this);var n=this[r],a=null!=n,o=i.getElementsByTagName(P)[0];if(o){var s=e[I];if(a&&!e.strokeNoScale){var l=n[0]*n[3]-n[1]*n[2];s*=v(g(l))}o.weight=s+"px"}var u=this.path;this.__dirtyPath&&(u.beginPath(),this.buildPath(u,this.shape),u.toStatic(),this.__dirtyPath=!1),i.path=q(u.data,this[r]),i.style.zIndex=E(this[Ce],this.z,this.z2),R(t,i),e.text?this.drawRectText(t,this[le]()):this.removeRectText(t)},h[si].onRemove=function(t){O(t,this._vmlEl),this.removeRectText(t)},h[si].onAdd=function(t){R(t,this._vmlEl),this.appendRectText(t)};var U=function(t){return"object"==typeof t&&t.tagName&&"IMG"===t.tagName.toUpperCase()};u[si].brushVML=function(t){var e,i,n=this.style,a=n.image;if(U(a)){var o=a.src;if(o===this._imageSrc)e=this._imageWidth,i=this._imageHeight;else{var s=a.runtimeStyle,l=s.width,u=s[Ye];s.width="auto",s[Ye]="auto",e=a.width,i=a[Ye],s.width=l,s[Ye]=u,this._imageSrc=o,this._imageWidth=e,this._imageHeight=i}a=o}else a===this._imageSrc&&(e=this._imageWidth,i=this._imageHeight);if(a){var c=n.x||0,h=n.y||0,d=n.width,m=n[Ye],g=n.sWidth,y=n.sHeight,_=n.sx||0,S=n.sy||0,T=g&&y,C=this._vmlEl;C||(C=f.doc[$]("div"),A(C),this._vmlEl=C);var L,P=C.style,I=!1,k=1,D=1;if(this[r]&&(L=this[r],k=v(L[0]*L[0]+L[1]*L[1]),D=v(L[2]*L[2]+L[3]*L[3]),I=L[1]||L[2]),I){var z=[c,h],O=[c+d,h],V=[c,h+m],B=[c+d,h+m];b(z,z,L),b(O,O,L),b(V,V,L),b(B,B,L);var N=x(z[0],O[0],V[0],B[0]),Z=x(z[1],O[1],V[1],B[1]),G=[];G.push("M11=",L[0]/k,w,"M12=",L[2]/D,w,"M21=",L[1]/k,w,"M22=",L[3]/D,w,"Dx=",p(c*k+L[4]),w,"Dy=",p(h*D+L[5])),P.padding="0 "+p(N)+"px "+p(Z)+"px 0",P[ye]=M+".Matrix("+G.join("")+", SizingMethod=clip)"}else L&&(c=c*k+L[4],h=h*D+L[5]),P[ye]="",P.left=p(c)+"px",P.top=p(h)+"px";var H=this._imageEl,F=this._cropEl;H||(H=f.doc[$]("div"),this._imageEl=H);var W=H.style;if(T){if(e&&i)W.width=p(k*e*d/g)+"px",W[Ye]=p(D*i*m/y)+"px";else{var q=new Image,X=this;q.onload=function(){q.onload=null,e=q.width,i=q[Ye],W.width=p(k*e*d/g)+"px",W[Ye]=p(D*i*m/y)+"px",X._imageWidth=e,X._imageHeight=i,X._imageSrc=a},q.src=a}F||(F=f.doc[$]("div"),F.style.overflow="hidden",this._cropEl=F);var j=F.style;j.width=p((d+_*d/g)*k),j[Ye]=p((m+S*m/y)*D),j[ye]=M+".Matrix(Dx="+-_*d/g*k+",Dy="+-S*m/y*D+")",F.parentNode||C.appendChild(F),H.parentNode!=F&&F.appendChild(H)}else W.width=p(k*d)+"px",W[Ye]=p(D*m)+"px",C.appendChild(H),F&&F.parentNode&&(C.removeChild(F),this._cropEl=null);var Y="",J=n[ne];1>J&&(Y+=".Alpha(opacity="+p(100*J)+") "),Y+=M+".AlphaImageLoader(src="+a+", SizingMethod=scale)",W[ye]=Y,C.style.zIndex=E(this[Ce],this.z,this.z2),R(t,C),n.text&&this.drawRectText(t,this[le]())}},u[si].onRemove=function(t){O(t,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(t)},u[si].onAdd=function(t){R(t,this._vmlEl),this.appendRectText(t)};var X,j=V,Y={},J=0,Q=100,K=document[$]("div"),te=function(t){var e=Y[t];if(!e){J>Q&&(J=0,Y={});var i,n=K.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(r){}e={style:n.fontStyle||j,variant:n.fontVariant||j,weight:n.fontWeight||j,size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},Y[t]=e,J++}return e};o.measureText=function(t,e){var i=f.doc;X||(X=i[$]("div"),X.style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",f.doc.body.appendChild(X));try{X.style.font=e}catch(n){}return X.innerHTML="",X.appendChild(i.createTextNode(t)),{width:X.offsetWidth}};for(var ee=new i,ie=function(t,e,i,n){var a=this.style,s=a.text;if(s){var l,u,c=a[he],h=te(a.textFont),d=h.style+" "+h.variant+" "+h.weight+" "+h.size+'px "'+h.family+'"',v=a.textBaseline,g=a.textVerticalAlign;i=i||o[le](s,d,c,v);var y=this[r];if(y&&!n&&(ee.copy(e),ee[k](y),e=ee),n)l=e.x,u=e.y;else{var _=a.textPosition,x=a.textDistance;if(_ instanceof Array)l=e.x+B(_[0],e.width),u=e.y+B(_[1],e[Ye]),c=c||"left",v=v||"top";else{var M=o.adjustTextPositionOnRect(_,e,i,x);l=M.x,u=M.y,c=c||M[he],v=v||M.textBaseline}}if(g){switch(g){case oe:u-=i[Ye]/2;break;case $e:u-=i[Ye]}v="top"}var S=h.size;switch(v){case"hanging":case"top":u+=S/1.75;break;case oe:break;default:u-=S/2.25}switch(c){case"left":break;case ae:l-=i.width/2;break;case"right":l-=i.width}var T,C,L,I=f.createNode,z=this._textVmlEl;z?(L=z.firstChild,T=L.nextSibling,C=T.nextSibling):(z=I("line"),T=I("path"),C=I("textpath"),L=I("skew"),C.style["v-text-align"]="left",A(z),T.textpathok=!0,C.on=!0,z.from="0 0",z.to="1000 0.05",R(z,L),R(z,T),R(z,C),this._textVmlEl=z);var O=[l,u],V=z.style;y&&n?(b(O,O,y),L.on=!0,L.matrix=y[0][m](3)+w+y[2][m](3)+w+y[1][m](3)+w+y[3][m](3)+",0,0",L.offset=(p(O[0])||0)+","+(p(O[1])||0),L.origin="0 0",V.left="0px",V.top="0px"):(L.on=!1,V.left=p(l)+"px",V.top=p(u)+"px"),C[oi]=D(s);try{C.style.font=d}catch(N){}F(z,"fill",{fill:n?a.fill:a.textFill,opacity:a[ne]},this),F(z,P,{stroke:n?a[P]:a.textStroke,opacity:a[ne],lineDash:a.lineDash},this),z.style.zIndex=E(this[Ce],this.z,this.z2),R(t,z)}},re=function(t){O(t,this._textVmlEl),this._textVmlEl=null},se=function(t){R(t,this._textVmlEl)},ue=[s,l,u,h,c],ce=0;ce<ue[Ne];ce++){var de=ue[ce][si];de.drawRectText=ie,de.removeRectText=re,de.appendRectText=se}c[si].brushVML=function(t){var e=this.style;e.text?this.drawRectText(t,{x:e.x||0,y:e.y||0,width:0,height:0},this[le](),!0):this.removeRectText(t)},c[si].onRemove=function(t){this.removeRectText(t)},c[si].onAdd=function(t){this.appendRectText(t)}}}),e("zrender/vml/Painter",[fi,"../core/log","./core"],function(t){function e(t){return parseInt(t,10)}function i(t,e){a.initVML(),this.root=t,this[Ke]=e;var i=document[$]("div"),n=document[$]("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this[ai]();var r=e.delFromMap,o=e.addToMap;e.delFromMap=function(t){var i=e.get(t);r.call(e,t),i&&i.onRemove&&i.onRemove(n)},e.addToMap=function(t){t.onAdd&&t.onAdd(n),o.call(e,t)},this._firstPaint=!0}function n(t){return function(){r('In IE8.0 VML mode painter not support method "'+t+'"')}}var r=t("../core/log"),a=t("./core");i[si]={constructor:i,getViewportRoot:function(){return this._vmlViewport},refresh:function(){var t=this[Ke].getDisplayList(!0,!0);this._paintList(t)},_paintList:function(t){for(var e=this._vmlRoot,i=0;i<t[Ne];i++){var n=t[i];n.invisible||n[Je]?(n.__alreadyNotVisible||n.onRemove(e),n.__alreadyNotVisible=!0):(n.__alreadyNotVisible&&n.onAdd(e),n.__alreadyNotVisible=!1,n.__dirty&&(n.beforeBrush&&n.beforeBrush(),(n.brushVML||n.brush).call(n,e),n.afterBrush&&n.afterBrush())),n.__dirty=!1}this._firstPaint&&(this._vmlViewport.appendChild(e),this._firstPaint=!1)},resize:function(){var t=this._getWidth(),e=this._getHeight();if(this._width!=t&&this._height!=e){this._width=t,this._height=e;var i=this._vmlViewport.style;i.width=t+"px",i[Ye]=e+"px"}},dispose:function(){this.root.innerHTML="",this._vmlRoot=this._vmlViewport=this[Ke]=null},getWidth:function(){return this._width},getHeight:function(){return this._height},clear:function(){this.root.removeChild(this.vmlViewport)},_getWidth:function(){var t=this.root,i=t.currentStyle;return(t.clientWidth||e(i.width))-e(i.paddingLeft)-e(i.paddingRight)|0},_getHeight:function(){var t=this.root,i=t.currentStyle;return(t.clientHeight||e(i[Ye]))-e(i.paddingTop)-e(i.paddingBottom)|0}};for(var o=["getLayer","insertLayer","eachLayer","eachBuildinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],s=0;s<o[Ne];s++){var l=o[s];i[si][l]=n(l)}return i}),e("echarts/scale/Interval",[fi,ie,"../util/format","./Scale"],function(t){var e=t(ie),i=t("../util/format"),r=t("./Scale"),a=Math.floor,o=Math.ceil,s=r[He]({type:"interval",_interval:0,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),s[si].setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval||this.niceTicks(),this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice()},getTicks:function(){this._interval||this.niceTicks();var t=this._interval,i=this._extent,n=[],r=1e4;if(t){var a=this._niceExtent;i[0]<a[0]&&n.push(i[0]);for(var o=a[0];o<=a[1];)if(n.push(o),o=e.round(o+t),n[Ne]>r)return[];i[1]>a[1]&&n.push(i[1])}return n},getTicksLabels:function(){for(var t=[],e=this.getTicks(),i=0;i<e[Ne];i++)t.push(this[te](e[i]));return t},getLabel:function(t){return i.addCommas(t)},niceTicks:function(t){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){0>r&&(r=-r,i[n]());var s=e.nice(r/t,!0),l=[e.round(o(i[0]/s)*s),e.round(a(i[1]/s)*s)];this._interval=s,this._niceExtent=l}},niceExtent:function(t,i,n){var r=this._extent;if(r[0]===r[1])if(0!==r[0]){var s=r[0]/2;r[0]-=s,r[1]+=s}else r[1]=1;var l=r[1]-r[0];isFinite(l)||(r[0]=0,r[1]=1),this.niceTicks(t);var u=this._interval;i||(r[0]=e.round(a(r[0]/u)*u)),n||(r[1]=e.round(o(r[1]/u)*u))}});return s[je]=function(){return new s},s}),e("echarts/component/visualMap",[fi,"./visualMapContinuous","./visualMapPiecewise"],function(t){t("./visualMapContinuous"),t("./visualMapPiecewise")}),e("echarts/scale/Scale",[fi,"../util/clazz"],function(t){function e(){this._extent=[1/0,-1/0],this._interval=0,this.init&&this.init.apply(this,arguments)}var i=t("../util/clazz"),n=e[si];return n.parse=function(t){return t},n[ee]=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},n.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},n.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},n.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},n[K]=function(){return this._extent.slice()},n.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},n.getTicksLabels=function(){for(var t=[],e=this.getTicks(),i=0;i<e[Ne];i++)t.push(this[te](e[i]));return t},i.enableClassExtend(e),i.enableClassManagement(e,{registerWhenExtend:!0}),e}),e("echarts/util/model",[fi,"./format","./number","../model/Model",hi],function(t){var e=t("./format"),i=t("./number"),n=t("../model/Model"),r=t(hi),a=["x","y","z",u,"angle"],o={};return o.createNameEach=function(t,e){t=t.slice();var i=r.map(t,o.capitalFirst);e=(e||[]).slice();var n=r.map(e,o.capitalFirst);return function(a,o){r.each(t,function(t,r){for(var s={name:t,capital:i[r]},l=0;l<e[Ne];l++)s[e[l]]=t+n[l];a.call(o,s)})}},o.capitalFirst=function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},o.eachAxisDim=o.createNameEach(a,["axisIndex","axis","index"]),o.normalizeToArray=function(t){return t instanceof Array?t:null==t?[]:[t]},o.createLinkedNodesFinder=function(t,e,i){function n(t,e){return r[ge](e.nodes,t)>=0}function a(t,n){var a=!1;return e(function(e){r.each(i(t,e)||[],function(t){n.records[e.name][t]&&(a=!0)})}),a}function o(t,n){n.nodes.push(t),e(function(e){r.each(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){function r(t){!n(t,s)&&a(t,s)&&(o(t,s),l=!0)}var s={nodes:[],records:{}};if(e(function(t){s.records[t.name]={}}),!i)return s;o(i,s);var l;do l=!1,t(r);while(l);return s}},o.defaultEmphasis=function(t,e){if(t){var i=t[E]=t[E]||{},n=t[V]=t[V]||{};r.each(e,function(t){var e=r.retrieve(i[t],n[t]);null!=e&&(i[t]=e)})}},o.LABEL_OPTIONS=[re,"show",de,"distance","formatter"],o.getDataItemValue=function(t){return t&&(null==t.value?t:t.value)},o.isDataItemOption=function(t){return r[We](t)&&!(t instanceof Array)},o.converDataValue=function(t,e){var n=e&&e.type;return n===b?t:("time"!==n||isFinite(t)||null==t||"-"===t||(t=+i.parseDate(t)),null==t||""===t?0/0:+t)},o.createDataFormatModel=function(t,e){var i=new n;return r.mixin(i,o.dataFormatMixin),i[Ie]=e[Ie],i.name=e.name||"",i.mainType=e.mainType,i.subType=e.subType,i[qe]=function(){return t},i},o.dataFormatMixin={getDataParams:function(t,e){var i=this[qe](e),n=this[Ie],r=this.name,a=this[H](t,e),o=i.getRawIndex(t),s=i[G](t,!0),l=i.getRawDataItem(t);return{componentType:this.mainType,componentSubType:this.subType,seriesType:this.mainType===Ee?this.subType:null,seriesIndex:n,seriesName:r,name:s,dataIndex:o,data:l,dataType:e,value:a,color:i[Z](t,"color"),$vars:["seriesName","name","value"]}},getFormattedLabel:function(t,i,n,r){i=i||V;var a=this[qe](n),o=a[M](t),s=this[Pe](t,n);null!=r&&s.value instanceof Array&&(s.value=s.value[r]);var l=o.get(["label",i,"formatter"]);return typeof l===Me?(s.status=i,l(s)):typeof l===oi?e.formatTpl(l,s):void 0},getRawValue:function(t,e){var i=this[qe](e),n=i.getRawDataItem(t);return null!=n?!r[We](n)||n instanceof Array?n:n.value:void 0},formatTooltip:r.noop},o.mappingToExists=function(t,e){e=(e||[]).slice();var i=r.map(t||[],function(t){return{exist:t}});return r.each(e,function(t,n){if(r[We](t))for(var a=0;a<i[Ne];a++){var s=i[a].exist;if(!i[a][Y]&&(null!=t.id&&s.id===t.id+""||null!=t.name&&!o.isIdInner(t)&&!o.isIdInner(s)&&s.name===t.name+"")){i[a][Y]=t,e[n]=null;break}}}),r.each(e,function(t){if(r[We](t)){for(var e=0;e<i[Ne];e++){var n=i[e].exist;if(!i[e][Y]&&!o.isIdInner(n)&&null==t.id){i[e][Y]=t;break}}e>=i[Ne]&&i.push({option:t})}}),i},o.isIdInner=function(t){return r[We](t)&&t.id&&0===(t.id+"")[ge]("\x00_ec_\x00")},o.truncate=function(t,e,i){if(!t)return t;for(var n=0,r=0,a=t[Ne];a>r&&e>n;r++)n+=t.charCodeAt(r)>255?2:1;return a>r&&(t=t.slice(0,r)+(i||"")),t},o.compressBatches=function(t,e){function i(t,e,i){for(var n=0,r=t[Ne];r>n;n++)for(var a=t[n].seriesId,s=o.normalizeToArray(t[n][ke]),l=i&&i[a],u=0,c=s[Ne];c>u;u++){var h=s[u];l&&l[h]?l[h]=null:(e[a]||(e[a]={}))[h]=1}}function n(t,e){var i=[];for(var r in t)if(t.hasOwnProperty(r)&&null!=t[r])if(e)i.push(+r);else{var a=n(t[r],!0);a[Ne]&&i.push({seriesId:r,dataIndex:a})}return i}var r={},a={};return i(t||[],r),i(e||[],a,r),[n(r),n(a)]},o}),e("echarts/model/globalDefault",[],function(){var t="";return typeof navigator!==Q&&(t=navigator.platform||""),{color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],grid:{},textStyle:{fontFamily:t.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:!0,animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3}}),e("echarts/model/mixin/colorPalette",[],function(){return{clearColorPalette:function(){this._colorIdx=0,this._colorNameMap={}},getColorFromPalette:function(t,e){e=e||this;var i=e._colorIdx||0,n=e._colorNameMap||(e._colorNameMap={});if(n[t])return n[t];var r=this.get("color",!0)||[];if(r[Ne]){var a=r[i];return t&&(n[t]=a),e._colorIdx=(i+1)%r[Ne],a}}}}),e("zrender/tool/path",[fi,"../graphic/Path","../core/PathProxy","./transformPath","../core/matrix"],function(t){function e(t,e,i,n,r,a,o,s,l,f,m){var g=l*(d/180),y=h(g)*(t-i)/2+c(g)*(e-n)/2,_=-1*c(g)*(t-i)/2+h(g)*(e-n)/2,x=y*y/(o*o)+_*_/(s*s);x>1&&(o*=u(x),s*=u(x));var b=(r===a?-1:1)*u((o*o*s*s-o*o*_*_-s*s*y*y)/(o*o*_*_+s*s*y*y))||0,w=b*o*_/s,M=b*-s*y/o,S=(t+i)/2+h(g)*w-c(g)*M,T=(e+n)/2+c(g)*w+h(g)*M,C=v([1,0],[(y-w)/o,(_-M)/s]),L=[(y-w)/o,(_-M)/s],A=[(-1*y-w)/o,(-1*_-M)/s],P=v(L,A);p(L,A)<=-1&&(P=d),p(L,A)>=1&&(P=0),0===a&&P>0&&(P-=2*d),1===a&&0>P&&(P+=2*d),m.addData(f,S,T,o,s,C,P,g,a)}function i(t){if(!t)return[];var i,n=t[Te](/-/g," -")[Te](/  /g," ")[Te](/ /g,",")[Te](/,,/g,",");for(i=0;i<l[Ne];i++)n=n[Te](new RegExp(l[i],"g"),"|"+l[i]);var r,o=n.split("|"),s=0,u=0,c=new a,h=a.CMD;for(i=1;i<o[Ne];i++){var d,f=o[i],p=f.charAt(0),v=0,m=f.slice(1)[Te](/e,-/g,"e-").split(",");m[Ne]>0&&""===m[0]&&m.shift();for(var g=0;g<m[Ne];g++)m[g]=parseFloat(m[g]);for(;v<m[Ne]&&!isNaN(m[v])&&!isNaN(m[0]);){var y,_,x,b,w,M,S,T=s,C=u;switch(p){case"l":s+=m[v++],u+=m[v++],d=h.L,c.addData(d,s,u);break;case"L":s=m[v++],u=m[v++],d=h.L,c.addData(d,s,u);break;case"m":s+=m[v++],u+=m[v++],d=h.M,c.addData(d,s,u),p="l";break;case"M":s=m[v++],u=m[v++],d=h.M,c.addData(d,s,u),p="L";break;case"h":s+=m[v++],d=h.L,c.addData(d,s,u);break;case"H":s=m[v++],d=h.L,c.addData(d,s,u);break;case"v":u+=m[v++],d=h.L,c.addData(d,s,u);break;case"V":u=m[v++],d=h.L,c.addData(d,s,u);break;case"C":d=h.C,c.addData(d,m[v++],m[v++],m[v++],m[v++],m[v++],m[v++]),s=m[v-2],u=m[v-1];break;case"c":d=h.C,c.addData(d,m[v++]+s,m[v++]+u,m[v++]+s,m[v++]+u,m[v++]+s,m[v++]+u),s+=m[v-2],u+=m[v-1];break;case"S":y=s,_=u;var L=c.len(),A=c.data;r===h.C&&(y+=s-A[L-4],_+=u-A[L-3]),d=h.C,T=m[v++],C=m[v++],s=m[v++],u=m[v++],c.addData(d,y,_,T,C,s,u);break;case"s":y=s,_=u;var L=c.len(),A=c.data;r===h.C&&(y+=s-A[L-4],_+=u-A[L-3]),d=h.C,T=s+m[v++],C=u+m[v++],s+=m[v++],u+=m[v++],c.addData(d,y,_,T,C,s,u);break;case"Q":T=m[v++],C=m[v++],s=m[v++],u=m[v++],d=h.Q,c.addData(d,T,C,s,u);break;case"q":T=m[v++]+s,C=m[v++]+u,s+=m[v++],u+=m[v++],d=h.Q,c.addData(d,T,C,s,u);break;case"T":y=s,_=u;var L=c.len(),A=c.data;r===h.Q&&(y+=s-A[L-4],_+=u-A[L-3]),s=m[v++],u=m[v++],d=h.Q,c.addData(d,y,_,s,u);break;case"t":y=s,_=u;var L=c.len(),A=c.data;r===h.Q&&(y+=s-A[L-4],_+=u-A[L-3]),s+=m[v++],u+=m[v++],d=h.Q,c.addData(d,y,_,s,u);break;case"A":x=m[v++],b=m[v++],w=m[v++],M=m[v++],S=m[v++],T=s,C=u,s=m[v++],u=m[v++],d=h.A,e(T,C,s,u,M,S,x,b,w,d,c);break;case"a":x=m[v++],b=m[v++],w=m[v++],M=m[v++],S=m[v++],T=s,C=u,s+=m[v++],u+=m[v++],d=h.A,e(T,C,s,u,M,S,x,b,w,d,c)}}("z"===p||"Z"===p)&&(d=h.Z,c.addData(d)),r=d}return c.toStatic(),c}function n(t,e){var n,r=i(t);return e=e||{},e.buildPath=function(t){t.setData(r.data),n&&o(t,n);var e=t[J]();e&&t.rebuildPath(e)},e[k]=function(t){n||(n=s[je]()),s.mul(n,t,n)},e}var r=t("../graphic/Path"),a=t("../core/PathProxy"),o=t("./transformPath"),s=t("../core/matrix"),l=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"],u=Math.sqrt,c=Math.sin,h=Math.cos,d=Math.PI,f=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},p=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(f(t)*f(e))},v=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(p(t,e))};return{createFromString:function(t,e){return new r(n(t,e))},extendFromString:function(t,e){return r[He](n(t,e))},mergePath:function(t,e){for(var i=[],n=t[Ne],a=0;n>a;a++){var o=t[a];o.__dirty&&o.buildPath(o.path,o.shape,!0),i.push(o.path)}var s=new r(e);return s.buildPath=function(t){t.appendPath(i);var e=t[J]();e&&t.rebuildPath(e)},s}}}),e("zrender/graphic/Path",[fi,"./Displayable",i,"../core/PathProxy","../contain/path","./Pattern"],function(t){function e(t){n.call(this,t),this.path=new o}var n=t("./Displayable"),a=t(i),o=t("../core/PathProxy"),s=t("../contain/path"),l=t("./Pattern"),u=l[si].getCanvasPattern,c=Math.abs;return e[si]={constructor:e,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path,r=i.hasStroke(),a=i.hasFill(),o=i.fill,s=i[P],l=a&&!!o.colorStops,c=r&&!!s.colorStops,h=a&&!!o.image,d=r&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var f=this[le]();l&&(this._fillGradient=i.getGradient(t,o,f)),c&&(this._strokeGradient=i.getGradient(t,s,f))}l?t.fillStyle=this._fillGradient:h&&(t.fillStyle=u.call(o,t)),c?t.strokeStyle=this._strokeGradient:d&&(t.strokeStyle=u.call(s,t));var p=i.lineDash,v=i.lineDashOffset,m=!!t.setLineDash,g=this.getGlobalScale();n.setScale(g[0],g[1]),this.__dirtyPath||p&&!m&&r?(n=this.path.beginPath(t),p&&!m&&(n.setLineDash(p),n.setLineDashOffset(v)),this.buildPath(n,this.shape,!1),this.__dirtyPath=!1):(t.beginPath(),this.path.rebuildPath(t)),a&&n.fill(t),p&&m&&(t.setLineDash(p),t.lineDashOffset=v),r&&n[P](t),p&&m&&t.setLineDash([]),this.restoreTransform(t),(i.text||0===i.text)&&this.drawRectText(t,this[le]())},buildPath:function(){},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n[le]()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){r.copy(t);var a=e[I],o=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),o>1e-10&&(r.width+=a/o,r[Ye]+=a/o,r.x-=a/o/2,r.y-=a/o/2)}return r}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this[le](),r=this.style;if(t=i[0],e=i[1],n[ee](t,e)){var a=this.path.data;if(r.hasStroke()){var o=r[I],l=r.strokeNoScale?this.getLineScale():1;if(l>1e-10&&(r.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),s.containStroke(a,o/l,t,e)))return!0}if(r.hasFill())return s[ee](a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this[S](e),this.__dirtyPath=!0,this._rect=null):n[si].attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(a[We](t))for(var n in t)i[n]=t[n];else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this[r];return t&&c(t[0]-1)>1e-10&&c(t[3]-1)>1e-10?Math.sqrt(c(t[0]*t[3]-t[2]*t[1])):1}},e[He]=function(t){var i=function(i){e.call(this,i),t.style&&this.style.extendFrom(t.style,!1);var n=t.shape;if(n){this.shape=this.shape||{};var r=this.shape;for(var a in n)!r.hasOwnProperty(a)&&n.hasOwnProperty(a)&&(r[a]=n[a])}t.init&&t.init.call(this,i)};a[me](i,e);for(var n in t)"style"!==n&&"shape"!==n&&(i[si][n]=t[n]);return i},a[me](e,n),e}),e("zrender/graphic/Gradient",[fi],function(){var t=function(t){this.colorStops=t||[]};return t[si]={constructor:t,addColorStop:function(t,e){this.colorStops.push({offset:t,color:e})}},t}),e("zrender/container/Group",[fi,i,"../Element","../core/BoundingRect"],function(t){var e=t(i),n=t("../Element"),r=t("../core/BoundingRect"),a=function(t){t=t||{},n.call(this,t);for(var e in t)this[e]=t[e];this._children=[],this.__storage=null,this.__dirty=!0};return a[si]={constructor:a,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i<e[Ne];i++)if(e[i].name===t)return e[i]},childCount:function(){return this._children[Ne]},add:function(t){return t&&t!==this&&t[C]!==this&&(this._children.push(t),this._doAdd(t)),this},addBefore:function(t,e){if(t&&t!==this&&t[C]!==this&&e&&e[C]===this){var i=this._children,n=i[ge](e);n>=0&&(i[Oe](n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t[C]&&t[C][Fe](t),t[C]=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToMap(t),t instanceof a&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var i=this.__zr,n=this.__storage,r=this._children,o=e[ge](r,t);return 0>o?this:(r[Oe](o,1),t[C]=null,n&&(n.delFromMap(t.id),t instanceof a&&t.delChildrenFromStorage(n)),i&&i.refresh(),this)
},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;e<i[Ne];e++)t=i[e],n&&(n.delFromMap(t.id),t instanceof a&&t.delChildrenFromStorage(n)),t[C]=null;return i[Ne]=0,this},eachChild:function(t,e){for(var i=this._children,n=0;n<i[Ne];n++){var r=i[n];t.call(e,r,n)}return this},traverse:function(t,e){for(var i=0;i<this._children[Ne];i++){var n=this._children[i];t.call(e,n),"group"===n.type&&n[Ae](t,e)}return this},addChildrenToStorage:function(t){for(var e=0;e<this._children[Ne];e++){var i=this._children[e];t.addToMap(i),i instanceof a&&i.addChildrenToStorage(t)}},delChildrenFromStorage:function(t){for(var e=0;e<this._children[Ne];e++){var i=this._children[e];t.delFromMap(i.id),i instanceof a&&i.delChildrenFromStorage(t)}},dirty:function(){return this.__dirty=!0,this.__zr&&this.__zr.refresh(),this},getBoundingRect:function(t){for(var e=null,i=new r(0,0,0,0),n=t||this._children,a=[],o=0;o<n[Ne];o++){var s=n[o];if(!s[Je]&&!s.invisible){var l=s[le](),u=s.getLocalTransform(a);u?(i.copy(l),i[k](u),e=e||i.clone(),e.union(i)):(e=e||l.clone(),e.union(l))}}return e||i}},e[me](a,n),a}),e("zrender/graphic/Image",[fi,"./Displayable","../core/BoundingRect",i,"./helper/roundRect","../core/LRU"],function(t){function e(t){n.call(this,t)}var n=t("./Displayable"),r=t("../core/BoundingRect"),a=t(i),o=t("./helper/roundRect"),s=t("../core/LRU"),l=new s(50);return e[si]={constructor:e,type:"image",brush:function(t,e){var i,n=this.style,r=n.image;if(n.bind(t,this,e),i=typeof r===oi?this._image:r,!i&&r){var a=l.get(r);if(!a)return i=new Image,i.onload=function(){i.onload=null;for(var t=0;t<a.pending[Ne];t++)a.pending[t].dirty()},a={image:i,pending:[this]},i.src=r,l.put(r,a),void(this._image=i);if(i=a.image,this._image=i,!i.width||!i[Ye])return void a.pending.push(this)}if(i){var s=n.width||i.width,u=n[Ye]||i[Ye],c=n.x||0,h=n.y||0;if(!i.width||!i[Ye])return;if(this.setTransform(t),n.r&&(t.beginPath(),o.buildPath(t,n),t.clip()),n.sWidth&&n.sHeight){var d=n.sx||0,f=n.sy||0;t.drawImage(i,d,f,n.sWidth,n.sHeight,c,h,s,u)}else if(n.sx&&n.sy){var d=n.sx,f=n.sy,p=s-d,v=u-f;t.drawImage(i,d,f,p,v,c,h,s,u)}else t.drawImage(i,c,h,s,u);null==n.width&&(n.width=s),null==n[Ye]&&(n[Ye]=u),this.restoreTransform(t),null!=n.text&&this.drawRectText(t,this[le]())}},getBoundingRect:function(){var t=this.style;return this._rect||(this._rect=new r(t.x||0,t.y||0,t.width||0,t[Ye]||0)),this._rect}},a[me](e,n),e}),e("zrender/graphic/Text",[fi,"./Displayable",i,"../contain/text"],function(t){var e=t("./Displayable"),n=t(i),r=t("../contain/text"),a=function(t){e.call(this,t)};return a[si]={constructor:a,type:"text",brush:function(t,e){var i=this.style,n=i.x||0,a=i.y||0,o=i.text;if(null!=o&&(o+=""),i.bind(t,this,e),o){this.setTransform(t);var s,l=i[he];if(i.textVerticalAlign){var u=r[le](o,t.font,i[he],"top");switch(s=oe,i.textVerticalAlign){case oe:a-=u[Ye]/2-u.lineHeight/2;break;case $e:a-=u[Ye]-u.lineHeight/2;break;default:a+=u.lineHeight/2}}else s=i.textBaseline;t.font=i.textFont||i.font,t[he]=l||"left",t[he]!==l&&(t[he]="left"),t.textBaseline=s||"alphabetic",t.textBaseline!==s&&(t.textBaseline="alphabetic");for(var c=r.measureText("国",t.font).width,h=o.split("\n"),d=0;d<h[Ne];d++)i.hasFill()&&t.fillText(h[d],n,a),i.hasStroke()&&t.strokeText(h[d],n,a),a+=c;this.restoreTransform(t)}},getBoundingRect:function(){if(!this._rect){var t=this.style,e=t.textVerticalAlign,i=r[le](t.text+"",t.textFont||t.font,t[he],e?"top":t.textBaseline);switch(e){case oe:i.y-=i[Ye]/2;break;case $e:i.y-=i[Ye]}i.x+=t.x||0,i.y+=t.y||0,this._rect=i}return this._rect}},n[me](a,e),a}),e("zrender/graphic/shape/Circle",[fi,"../Path"],function(t){return t("../Path")[He]({type:"circle",shape:{cx:0,cy:0,r:0},buildPath:function(t,e,i){i&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI,!0)}})}),e("zrender/graphic/shape/Sector",[fi,"../Path"],function(t){return t("../Path")[He]({type:"sector",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=Math.max(e.r0||0,0),a=Math.max(e.r,0),o=e.startAngle,s=e.endAngle,l=e.clockwise,u=Math.cos(o),c=Math.sin(o);t.moveTo(u*r+i,c*r+n),t.lineTo(u*a+i,c*a+n),t.arc(i,n,a,o,s,!l),t.lineTo(Math.cos(s)*r+i,Math.sin(s)*r+n),0!==r&&t.arc(i,n,r,s,o,l),t.closePath()}})}),e("zrender/graphic/shape/Ring",[fi,"../Path"],function(t){return t("../Path")[He]({type:"ring",shape:{cx:0,cy:0,r:0,r0:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=2*Math.PI;t.moveTo(i+e.r,n),t.arc(i,n,e.r,0,r,!1),t.moveTo(i+e.r0,n),t.arc(i,n,e.r0,0,r,!0)}})}),e("zrender/graphic/shape/Polygon",[fi,"../helper/poly","../Path"],function(t){var e=t("../helper/poly");return t("../Path")[He]({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,i){e.buildPath(t,i,!0)}})}),e("zrender/graphic/shape/Polyline",[fi,"../helper/poly","../Path"],function(t){var e=t("../helper/poly");return t("../Path")[He]({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,i){e.buildPath(t,i,!1)}})}),e("zrender/graphic/shape/Rect",[fi,"../helper/roundRect","../Path"],function(t){var e=t("../helper/roundRect");return t("../Path")[He]({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,i){var n=i.x,r=i.y,a=i.width,o=i[Ye];i.r?e.buildPath(t,i):t.rect(n,r,a,o),t.closePath()}})}),e("zrender/graphic/shape/Line",[fi,"../Path"],function(t){return t("../Path")[He]({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.percent;0!==o&&(t.moveTo(i,n),1>o&&(r=i*(1-o)+r*o,a=n*(1-o)+a*o),t.lineTo(r,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}})}),e("zrender/graphic/shape/BezierCurve",[fi,"../../core/curve","../../core/vector","../Path"],function(t){function e(t,e,i){var n=t.cpx2,r=t.cpy2;return null===n||null===r?[(i?u:s)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?u:s)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?l:o)(t.x1,t.cpx1,t.x2,e),(i?l:o)(t.y1,t.cpy1,t.y2,e)]}var i=t("../../core/curve"),n=t("../../core/vector"),r=i.quadraticSubdivide,a=i.cubicSubdivide,o=i.quadraticAt,s=i.cubicAt,l=i.quadraticDerivativeAt,u=i.cubicDerivativeAt,c=[];return t("../Path")[He]({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,o=e.x2,s=e.y2,l=e.cpx1,u=e.cpy1,h=e.cpx2,d=e.cpy2,f=e.percent;0!==f&&(t.moveTo(i,n),null==h||null==d?(1>f&&(r(i,l,o,f,c),l=c[1],o=c[2],r(n,u,s,f,c),u=c[1],s=c[2]),t.quadraticCurveTo(l,u,o,s)):(1>f&&(a(i,l,h,o,f,c),l=c[1],h=c[2],o=c[3],a(n,u,d,s,f,c),u=c[1],d=c[2],s=c[3]),t.bezierCurveTo(l,u,h,d,o,s)))},pointAt:function(t){return e(this.shape,t,!1)},tangentAt:function(t){var i=e(this.shape,t,!0);return n.normalize(i,i)}})}),e("zrender/graphic/shape/Arc",[fi,"../Path"],function(t){return t("../Path")[He]({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,r=Math.max(e.r,0),a=e.startAngle,o=e.endAngle,s=e.clockwise,l=Math.cos(a),u=Math.sin(a);t.moveTo(l*r+i,u*r+n),t.arc(i,n,r,a,o,!s)}})}),e("zrender/graphic/CompoundPath",[fi,"./Path"],function(t){var e=t("./Path");return e[He]({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i<e[Ne];i++)t=t||e[i].__dirtyPath;this.__dirtyPath=t,this.__dirty=this.__dirty||t},beforeBrush:function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),i=0;i<t[Ne];i++)t[i].path.setScale(e[0],e[1])},buildPath:function(t,e){for(var i=e.paths||[],n=0;n<i[Ne];n++)i[n].buildPath(t,i[n].shape,!0)},afterBrush:function(){for(var t=this.shape.paths,e=0;e<t[Ne];e++)t[e].__dirtyPath=!1},getBoundingRect:function(){return this._updatePathDirty(),e[si][le].call(this)}})}),e("zrender/graphic/LinearGradient",[fi,i,"./Gradient"],function(t){var e=t(i),n=t("./Gradient"),r=function(t,e,i,r,a,o){this.x=null==t?0:t,this.y=null==e?0:e,this.x2=null==i?1:i,this.y2=null==r?0:r,this.type="linear",this.global=o||!1,n.call(this,a)};return r[si]={constructor:r},e[me](r,n),r}),e("zrender/graphic/RadialGradient",[fi,i,"./Gradient"],function(t){var e=t(i),n=t("./Gradient"),r=function(t,e,i,r,a){this.x=null==t?.5:t,this.y=null==e?.5:e,this.r=null==i?.5:i,this.type="radial",this.global=a||!1,n.call(this,r)};return r[si]={constructor:r},e[me](r,n),r}),e(z,[fi,"./vector","./matrix"],function(t){function e(t,e,i,n){this.x=t,this.y=e,this.width=i,this[Ye]=n}var i=t("./vector"),n=t("./matrix"),r=i[k],a=Math.min,o=Math.abs,s=Math.max;return e[si]={constructor:e,union:function(t){var e=a(t.x,this.x),i=a(t.y,this.y);this.width=s(t.x+t.width,this.x+this.width)-e,this[Ye]=s(t.y+t[Ye],this.y+this[Ye])-i,this.x=e,this.y=i},applyTransform:function(){var t=[],e=[];return function(i){i&&(t[0]=this.x,t[1]=this.y,e[0]=this.x+this.width,e[1]=this.y+this[Ye],r(t,t,i),r(e,e,i),this.x=a(t[0],e[0]),this.y=a(t[1],e[1]),this.width=o(e[0]-t[0]),this[Ye]=o(e[1]-t[1]))}}(),calculateTransform:function(t){var e=this,i=t.width/e.width,r=t[Ye]/e[Ye],a=n[je]();return n.translate(a,a,[-e.x,-e.y]),n.scale(a,a,[i,r]),n.translate(a,a,[t.x,t.y]),a},intersect:function(t){var e=this,i=e.x,n=e.x+e.width,r=e.y,a=e.y+e[Ye],o=t.x,s=t.x+t.width,l=t.y,u=t.y+t[Ye];return!(o>n||i>s||l>a||r>u)},contain:function(t,e){var i=this;return t>=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i[Ye]},clone:function(){return new e(this.x,this.y,this.width,this[Ye])},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this[Ye]=t[Ye]}},e}),e("echarts/coord/axisHelper",[fi,"../scale/Ordinal","../scale/Interval","../scale/Time","../scale/Log","../scale/Scale",ie,hi,"zrender/contain/text"],function(t){var e=t("../scale/Ordinal"),i=t("../scale/Interval");t("../scale/Time"),t("../scale/Log");var n=t("../scale/Scale"),r=t(ie),a=t(hi),o=t("zrender/contain/text"),s={};return s.getScaleExtent=function(t,e){var i=t.scale,n=i[K](),o=n[1]-n[0];if(i.type===b)return isFinite(o)?n:[0,0];var s=e.getMin?e.getMin():e.get("min"),l=e.getMax?e.getMax():e.get("max"),u=e.getNeedCrossZero?e.getNeedCrossZero():!e.get("scale"),c=e.get("boundaryGap");a[Se](c)||(c=[c||0,c||0]),c[0]=r[g](c[0],1),c[1]=r[g](c[1],1);var h=!0,d=!0;return null==s&&(s=n[0]-c[0]*o,h=!1),null==l&&(l=n[1]+c[1]*o,d=!1),"dataMin"===s&&(s=n[0]),"dataMax"===l&&(l=n[1]),u&&(s>0&&l>0&&!h&&(s=0),0>s&&0>l&&!d&&(l=0)),[s,l]},s.niceScaleExtent=function(t,e){var i=t.scale,n=s.getScaleExtent(t,e),r=null!=(e.getMin?e.getMin():e.get("min")),a=null!=(e.getMax?e.getMax():e.get("max")),o=e.get("splitNumber");i.setExtent(n[0],n[1]),i.niceExtent(o,r,a);var u=e.get("minInterval");if(isFinite(u)&&!r&&!a&&i.type===l){var c=i.getInterval(),h=Math.max(Math.abs(c),u)/c;n=i[K](),i.setExtent(h*n[0],n[1]*h),i.niceExtent(o)}var c=e.get(l);null!=c&&i.setInterval&&i.setInterval(c)},s.createScaleByModel=function(t,r){if(r=r||t.get("type"))switch(r){case v:return new e(t.getCategories(),[1/0,-1/0]);case"value":return new i;default:return(n.getClass(r)||i)[je](t)}},s.ifAxisCrossZero=function(t){var e=t.scale[K](),i=e[0],n=e[1];return!(i>0&&n>0||0>i&&0>n)},s.getAxisLabelInterval=function(t,e,i,n){var r,a=0,s=0,l=1;e[Ne]>40&&(l=Math.floor(e[Ne]/40));for(var u=0;u<t[Ne];u+=l){var c=t[u],h=o[le](e[u],i,ae,"top");h[n?"x":"y"]+=c,h[n?"width":Ye]*=1.3,r?r.intersect(h)?(s++,a=Math.max(a,s)):(r.union(h),s=0):r=h.clone()}return 0===a&&l>1?l:(a+1)*l-1},s.getFormattedLabels=function(t,e){var i=t.scale,n=i.getTicksLabels(),r=i.getTicks();return typeof e===oi?(e=function(t){return function(e){return t[Te]("{value}",e)}}(e),a.map(n,e)):typeof e===Me?a.map(r,function(n,r){return e(t.type===v?i[te](n):n,r)},this):n},s}),e("echarts/coord/cartesian/Cartesian2D",[fi,hi,"./Cartesian"],function(t){function e(t){n.call(this,t)}var i=t(hi),n=t("./Cartesian");return e[si]={constructor:e,type:"cartesian2d",dimensions:["x","y"],getBaseAxis:function(){return this.getAxesByScale(b)[0]||this.getAxesByScale("time")[0]||this[p]("x")},containPoint:function(t){var e=this[p]("x"),i=this[p]("y");return e[ee](e.toLocalCoord(t[0]))&&i[ee](i.toLocalCoord(t[1]))},containData:function(t){return this[p]("x").containData(t[0])&&this[p]("y").containData(t[1])},dataToPoints:function(t,e){return t[_](["x","y"],function(t,e){return this[f]([t,e])},e,this)},dataToPoint:function(t,e){var i=this[p]("x"),n=this[p]("y");return[i.toGlobalCoord(i[c](t[0],e)),n.toGlobalCoord(n[c](t[1],e))]},pointToData:function(t,e){var i=this[p]("x"),n=this[p]("y");return[i.coordToData(i.toLocalCoord(t[0]),e),n.coordToData(n.toLocalCoord(t[1]),e)]},getOtherAxis:function(t){return this[p]("x"===t.dim?"y":"x")}},i[me](e,n),e}),e("echarts/coord/cartesian/Axis2D",[fi,hi,"../Axis","./axisLabelInterval"],function(t){var e=t(hi),i=t("../Axis"),n=t("./axisLabelInterval"),r=function(t,e,n,r,a){i.call(this,t,e,n),this.type=r||"value",this[re]=a||$e};return r[si]={constructor:r,index:0,onZero:!1,model:null,isHorizontal:function(){var t=this[re];return"top"===t||t===$e},getGlobalExtent:function(){var t=this[K]();return t[0]=this.toGlobalCoord(t[0]),t[1]=this.toGlobalCoord(t[1]),t},getLabelInterval:function(){var t=this._labelInterval;return t||(t=this._labelInterval=n(this)),t},isLabelIgnored:function(t){if(this.type===v){var e=this.getLabelInterval();return typeof e===Me&&!e(t,this.scale[te](t))||t%(e+1)}},toLocalCoord:null,toGlobalCoord:null},e[me](r,i),r}),e("echarts/coord/cartesian/GridModel",[fi,"./AxisModel","../../model/Component"],function(t){t("./AxisModel");var e=t("../../model/Component");return e[He]({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}})}),e("echarts/component/helper/selectableMixin",[fi,hi],function(t){var e=t(hi);return{updateSelectedMap:function(t){this._selectTargetMap=e.reduce(t||[],function(t,e){return t[e.name]=e,t},{})},select:function(t){var i=this._selectTargetMap,n=i[t],r=this.get("selectedMode");"single"===r&&e.each(i,function(t){t.selected=!1}),n&&(n.selected=!0)},unSelect:function(t){var e=this._selectTargetMap[t];e&&(e.selected=!1)},toggleSelected:function(t){var e=this._selectTargetMap[t];return null!=e?(this[e.selected?"unSelect":"select"](t),e.selected):void 0},isSelected:function(t){var e=this._selectTargetMap[t];return e&&e.selected}}}),e("echarts/util/clazz",[fi,hi],function(t){function e(t,e){var i=n.slice(arguments,2);return this.superClass[si][e].apply(t,i)}function i(t,e,i){return this.superClass[si][e].apply(t,i)}var n=t(hi),r={},a=".",o="___EC__COMPONENT__CONTAINER___",s=r.parseClassType=function(t){var e={main:"",sub:""};return t&&(t=t.split(a),e.main=t[0]||"",e.sub=t[1]||""),e};return r.enableClassExtend=function(t,r){t[He]=function(a){var o=function(){r&&r.apply(this,arguments),t.apply(this,arguments)};return n[He](o[si],a),o[He]=this[He],o.superCall=e,o.superApply=i,n[me](o,this),o.superClass=this,o}},r.enableClassManagement=function(t,e){function i(t){var e=r[t.main];return e&&e[o]||(e=r[t.main]={},e[o]=!0),e}e=e||{};var r={};if(t.registerClass=function(t,e){if(e)if(e=s(e),e.sub){if(e.sub!==o){var n=i(e);n[e.sub]=t}}else r[e.main]=t;return t},t.getClass=function(t,e,i){var n=r[t];if(n&&n[o]&&(n=e?n[e]:null),i&&!n)throw new Error("Component "+t+"."+(e||"")+" not exists. Load it first.");return n},t.getClassesByMainType=function(t){t=s(t);var e=[],i=r[t.main];return i&&i[o]?n.each(i,function(t,i){i!==o&&e.push(t)}):e.push(i),e},t.hasClass=function(t){return t=s(t),!!r[t.main]},t.getAllClassMainTypes=function(){var t=[];return n.each(r,function(e,i){t.push(i)}),t},t.hasSubTypes=function(t){t=s(t);var e=r[t.main];return e&&e[o]},t.parseClassType=s,e.registerWhenExtend){var a=t[He];a&&(t[He]=function(e){var i=a.call(this,e);return t.registerClass(i,e.type)})}return t},r.setReadOnly=function(){},r}),e("echarts/model/mixin/lineStyle",[fi,"./makeStyleMapper"],function(t){var e=t("./makeStyleMapper")([[I,"width"],[P,"color"],[ne],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);return{getLineStyle:function(t){var i=e.call(this,t),n=this.getLineDash();return n&&(i.lineDash=n),i},getLineDash:function(){var t=this.get("type");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}}}),e("echarts/model/mixin/areaStyle",[fi,"./makeStyleMapper"],function(t){return{getAreaStyle:t("./makeStyleMapper")([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],[ne],["shadowColor"]])}}),e("echarts/model/mixin/textStyle",[fi,"zrender/contain/text"],function(t){function e(t,e){return t&&t[N](e)}var i=t("zrender/contain/text");return{getTextColor:function(){var t=this[W];return this[N]("color")||t&&t.get("textStyle.color")},getFont:function(){var t=this[W],i=t&&t[ri](de);return[this[N]("fontStyle")||e(i,"fontStyle"),this[N]("fontWeight")||e(i,"fontWeight"),(this[N]("fontSize")||e(i,"fontSize")||12)+"px",this[N]("fontFamily")||e(i,"fontFamily")||"sans-serif"].join(" ")},getTextRect:function(t){var e=this.get(de)||{};return i[le](t,this[ce](),e.align,e.baseline)},ellipsis:function(t,e,n){return i.ellipsis(t,this[ce](),e,n)}}}),e("echarts/model/mixin/itemStyle",[fi,"./makeStyleMapper"],function(t){var e=t("./makeStyleMapper")([["fill","color"],[P,"borderColor"],[I,"borderWidth"],[ne],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);return{getItemStyle:function(t){var i=e.call(this,t),n=this.getBorderLineDash();return n&&(i.lineDash=n),i},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}}}),e("echarts/component/marker/MarkerModel",[fi,o,hi,di,"../../util/format",h],function(t){function e(t){i.defaultEmphasis(t.label,i.LABEL_OPTIONS)}var i=t(o),n=t(hi),r=t(di),a=t("../../util/format"),s=a.addCommas,l=a.encodeHTML,u=t(h)[be]({type:"marker",dependencies:[Ee,"grid","polar","geo"],init:function(t,e,i,n){this[q](t,i),this[j](t,i,n.createdBySelf,!0)},ifEnableAnimation:function(){if(r.node)return!1;var t=this.__hostSeries;return this[N](B)&&t&&t.ifEnableAnimation()},mergeOption:function(t,i,r,a){var o=this.constructor,s=this.mainType+"Model";r||i[Ue](function(t){var r=t.get(this.mainType),l=t[s];if(!r||!r.data)return void(t[s]=null);if(l)l[j](r,i,!0);else{a&&e(r),n.each(r.data,function(t){t instanceof Array?(e(t[0]),e(t[1])):e(t)});var u={mainType:this.mainType,seriesIndex:t[Ie],name:t.name,createdBySelf:!0};l=new o(r,this,i,u),l.__hostSeries=t}t[s]=l},this)},formatTooltip:function(t){var e=this[qe](),i=this[H](t),r=n[Se](i)?n.map(i,s).join(", "):s(i),a=e[G](t),o=this.name;return(null!=i||a)&&(o+="<br />"),a&&(o+=l(a),null!=i&&(o+=" : ")),null!=i&&(o+=r),o},getData:function(){return this._data},setData:function(t){this._data=t}});return n.mixin(u,i.dataFormatMixin),u}),e("echarts/util/component",[fi,hi,"./clazz"],function(t){var e=t(hi),i=t("./clazz"),n=i.parseClassType,r=0,a={},o="_";return a.getUID=function(t){return[t||"",r++,Math.random()].join(o)},a.enableSubTypeDefaulter=function(t){var e={};return t.registerSubTypeDefaulter=function(t,i){t=n(t),e[t.main]=i},t.determineSubType=function(i,r){var a=r.type;if(!a){var o=n(i).main;t.hasSubTypes(i)&&e[o]&&(a=e[o](r))}return a},t},a.enableTopologicalTravel=function(t,i){function n(t){var n={},o=[];return e.each(t,function(s){var l=r(n,s),u=l.originalDeps=i(s),c=a(u,t);l.entryCount=c[Ne],0===l.entryCount&&o.push(s),e.each(c,function(t){e[ge](l.predecessor,t)<0&&l.predecessor.push(t);var i=r(n,t);e[ge](i.successor,t)<0&&i.successor.push(s)})}),{graph:n,noEntryList:o}}function r(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function a(t,i){var n=[];return e.each(t,function(t){e[ge](i,t)>=0&&n.push(t)}),n}t.topologicalTravel=function(t,i,r,a){function o(t){u[t].entryCount--,0===u[t].entryCount&&c.push(t)}function s(t){h[t]=!0,o(t)}if(t[Ne]){var l=n(i),u=l.graph,c=l.noEntryList,h={};for(e.each(t,function(t){h[t]=!0});c[Ne];){var d=c.pop(),f=u[d],p=!!h[d];p&&(r.call(a,d,f.originalDeps.slice()),delete h[d]),e.each(f.successor,p?s:o)}e.each(h,function(){throw new Error("Circle dependency may exists")})}}},a}),e("echarts/model/mixin/boxLayout",[fi],function(){return{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get($e),width:this.get("width"),height:this.get(Ye)}}}}),e("echarts/component/toolbox/featureManager",[fi],function(){var t={};return{register:function(e,i){t[e]=i},get:function(e){return t[e]}}}),e("zrender/core/PathProxy",[fi,"./curve","./vector","./bbox","./BoundingRect","../config"],function(t){var e=t("./curve"),i=t("./vector"),n=t("./bbox"),r=t("./BoundingRect"),a=t("../config").devicePixelRatio,o={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},s=[],l=[],u=[],c=[],h=Math.min,d=Math.max,f=Math.cos,p=Math.sin,v=Math.sqrt,m=Math.abs,g=typeof Float32Array!=Q,y=function(){this.data=[],this._len=0,this._ctx=null,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._ux=0,this._uy=0};return y[si]={constructor:y,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=m(1/a/t)||0,this._uy=m(1/a/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),this._len=0,this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(o.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=m(t-this._xi)>this._ux||m(e-this._yi)>this._uy||this._len<5;return this.addData(o.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,r,a){return this.addData(o.C,t,e,i,n,r,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,r,a):this._ctx.bezierCurveTo(t,e,i,n,r,a)),this._xi=r,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(o.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,r,a){return this.addData(o.A,t,e,i,i,n,r-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,r,a),this._xi=f(r)*i+t,this._xi=p(r)*i+t,this},arcTo:function(t,e,i,n,r){return this._ctx&&this._ctx.arcTo(t,e,i,n,r),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(o.R,t,e,i,n),this},closePath:function(){this.addData(o.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t[P](),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;i<t[Ne];i++)e+=t[i];this._dashSum=e}return this},setLineDashOffset:function(t){return this._dashOffset=t,this},len:function(){return this._len},setData:function(t){var e=t[Ne];this.data&&this.data[Ne]==e||!g||(this.data=new Float32Array(e));for(var i=0;e>i;i++)this.data[i]=t[i];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t[Ne],i=0,n=this._len,r=0;e>r;r++)i+=t[r].len();g&&this.data instanceof Float32Array&&(this.data=new Float32Array(n+i));for(var r=0;e>r;r++)for(var a=t[r].data,o=0;o<a[Ne];o++)this.data[n++]=a[o];this._len=n},addData:function(t){var e=this.data;this._len+arguments[Ne]>e[Ne]&&(this._expandData(),e=this.data);for(var i=0;i<arguments[Ne];i++)e[this._len++]=arguments[i];this._prevCmd=t},_expandData:function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},_needsDash:function(){return this._lineDash},_dashedLineTo:function(t,e){var i,n,r=this._dashSum,a=this._dashOffset,o=this._lineDash,s=this._ctx,l=this._xi,u=this._yi,c=t-l,f=e-u,p=v(c*c+f*f),m=l,g=u,y=o[Ne];for(c/=p,f/=p,0>a&&(a=r+a),a%=r,m-=a*c,g-=a*f;c>0&&t>=m||0>c&&m>=t||0==c&&(f>0&&e>=g||0>f&&g>=e);)n=this._dashIdx,i=o[n],m+=c*i,g+=f*i,this._dashIdx=(n+1)%y,c>0&&l>m||0>c&&m>l||f>0&&u>g||0>f&&g>u||s[n%2?"moveTo":"lineTo"](c>=0?h(m,t):d(m,t),f>=0?h(g,e):d(g,e));c=m-t,f=g-e,this._dashOffset=-v(c*c+f*f)},_dashedBezierTo:function(t,i,n,r,a,o){var s,l,u,c,h,d=this._dashSum,f=this._dashOffset,p=this._lineDash,m=this._ctx,g=this._xi,y=this._yi,_=e.cubicAt,x=0,b=this._dashIdx,w=p[Ne],M=0;for(0>f&&(f=d+f),f%=d,s=0;1>s;s+=.1)l=_(g,t,n,a,s+.1)-_(g,t,n,a,s),u=_(y,i,r,o,s+.1)-_(y,i,r,o,s),x+=v(l*l+u*u);for(;w>b&&(M+=p[b],!(M>f));b++);for(s=(M-f)/x;1>=s;)c=_(g,t,n,a,s),h=_(y,i,r,o,s),b%2?m.moveTo(c,h):m.lineTo(c,h),s+=p[b]/x,b=(b+1)%w;b%2!==0&&m.lineTo(a,o),l=a-c,u=o-h,this._dashOffset=-v(l*l+u*u)},_dashedQuadraticTo:function(t,e,i,n){var r=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,r,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t[Ne]=this._len,g&&(this.data=new Float32Array(t)))},getBoundingRect:function(){s[0]=s[1]=u[0]=u[1]=Number.MAX_VALUE,l[0]=l[1]=c[0]=c[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,a=0,h=0,d=0,v=0;v<t[Ne];){var m=t[v++];switch(1==v&&(e=t[v],a=t[v+1],h=e,d=a),m){case o.M:h=t[v++],d=t[v++],e=h,a=d,u[0]=h,u[1]=d,c[0]=h,c[1]=d;break;case o.L:n.fromLine(e,a,t[v],t[v+1],u,c),e=t[v++],a=t[v++];break;case o.C:n.fromCubic(e,a,t[v++],t[v++],t[v++],t[v++],t[v],t[v+1],u,c),e=t[v++],a=t[v++];break;case o.Q:n.fromQuadratic(e,a,t[v++],t[v++],t[v],t[v+1],u,c),e=t[v++],a=t[v++];break;case o.A:var g=t[v++],y=t[v++],_=t[v++],x=t[v++],b=t[v++],w=t[v++]+b,M=(t[v++],1-t[v++]);1==v&&(h=f(b)*_+g,d=p(b)*x+y),n.fromArc(g,y,_,x,b,w,M,u,c),e=f(w)*_+g,a=p(w)*x+y;break;case o.R:h=e=t[v++],d=a=t[v++];var S=t[v++],T=t[v++];n.fromLine(h,d,h+S,d+T,u,c);break;case o.Z:e=h,a=d}i.min(s,s,u),i.max(l,l,c)}return 0===v&&(s[0]=s[1]=l[0]=l[1]=0),new r(s[0],s[1],l[0]-s[0],l[1]-s[1])},rebuildPath:function(t){for(var e,i,n,r,a,s,l=this.data,u=this._ux,c=this._uy,h=this._len,d=0;h>d;){var v=l[d++];switch(1==d&&(n=l[d],r=l[d+1],e=n,i=r),v){case o.M:e=n=l[d++],i=r=l[d++],t.moveTo(n,r);break;case o.L:a=l[d++],s=l[d++],(m(a-n)>u||m(s-r)>c||d===h-1)&&(t.lineTo(a,s),n=a,r=s);break;case o.C:t.bezierCurveTo(l[d++],l[d++],l[d++],l[d++],l[d++],l[d++]),n=l[d-2],r=l[d-1];break;case o.Q:t.quadraticCurveTo(l[d++],l[d++],l[d++],l[d++]),n=l[d-2],r=l[d-1];break;case o.A:var g=l[d++],y=l[d++],_=l[d++],x=l[d++],b=l[d++],w=l[d++],M=l[d++],S=l[d++],T=_>x?_:x,C=_>x?1:_/x,L=_>x?x/_:1,A=Math.abs(_-x)>.001,P=b+w;A?(t.translate(g,y),t.rotate(M),t.scale(C,L),t.arc(0,0,T,b,P,1-S),t.scale(1/C,1/L),t.rotate(-M),t.translate(-g,-y)):t.arc(g,y,T,b,P,1-S),1==d&&(e=f(b)*_+g,i=p(b)*x+y),n=f(P)*_+g,r=p(P)*x+y;break;case o.R:e=n=l[d],i=r=l[d+1],t.rect(l[d++],l[d++],l[d++],l[d++]);break;case o.Z:t.closePath(),n=e,r=i}}}},y.CMD=o,y}),e("zrender/contain/text",[fi,i,"../core/BoundingRect"],function(t){function e(t,e){var i=t+":"+e;if(l[i])return l[i];for(var n=(t+"").split("\n"),r=0,a=0,o=n[Ne];o>a;a++)r=Math.max(f.measureText(n[a],e).width,r);return u>c&&(u=0,l={}),u++,l[i]=r,r}function n(t,i,n,r){var a=((t||"")+"").split("\n")[Ne],o=e(t,i),s=e("国",i),l=a*s,u=new d(0,0,o,l);switch(u.lineHeight=s,r){case $e:case"alphabetic":u.y-=s;break;case oe:u.y-=s/2}switch(n){case"end":case"right":u.x-=u.width;break;case ae:u.x-=u.width/2}return u}function r(t,e,i,n){var r=e.x,a=e.y,o=e[Ye],s=e.width,l=i[Ye],u=o/2-l/2,c="left";switch(t){case"left":r-=n,a+=u,c="right";break;case"right":r+=n+s,a+=u,c="left";break;case"top":r+=s/2,a-=n+l,c=ae;break;case $e:r+=s/2,a+=o+n,c=ae;break;case L:r+=s/2,a+=u,c=ae;break;case"insideLeft":r+=n,a+=u,c="left";break;case"insideRight":r+=s-n,a+=u,c="right";break;case"insideTop":r+=s/2,a+=n,c=ae;break;case"insideBottom":r+=s/2,a+=o-l-n,c=ae;break;case"insideTopLeft":r+=n,a+=n,c="left";break;case"insideTopRight":r+=s-n,a+=n,c="right";break;case"insideBottomLeft":r+=n,a+=o-l-n;break;case"insideBottomRight":r+=s-n,a+=o-l-n,c="right"}return{x:r,y:a,textAlign:c,textBaseline:"top"}}function a(t,i,n,r){if(!n)return"";r=h[Ze]({ellipsis:"...",minCharacters:3,maxIterations:3,cnCharWidth:e("国",i),ascCharWidth:e("a",i)},r,!0),n-=e(r.ellipsis);for(var a=(t+"").split("\n"),s=0,l=a[Ne];l>s;s++)a[s]=o(a[s],i,n,r);return a.join("\n")}function o(t,i,n,r){for(var a=0;;a++){var o=e(t,i);if(n>o||a>=r.maxIterations){t+=r.ellipsis;break}var l=0===a?s(t,n,r):Math.floor(t[Ne]*n/o);if(l<r.minCharacters){t="";break}t=t.substr(0,l)}return t}function s(t,e,i){for(var n=0,r=0,a=t[Ne];a>r&&e>n;r++){var o=t.charCodeAt(r);n+=o>=0&&127>=o?i.ascCharWidth:i.cnCharWidth}return r}var l={},u=0,c=5e3,h=t(i),d=t("../core/BoundingRect"),f={getWidth:e,getBoundingRect:n,adjustTextPositionOnRect:r,ellipsis:a,measureText:function(t,e){var i=h[J]();return i.font=e,i.measureText(t)}};return f}),e("zrender/graphic/mixin/RectText",[fi,"../../contain/text","../../core/BoundingRect"],function(t){function e(t,e){return typeof t===oi?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}var i=t("../../contain/text"),n=t("../../core/BoundingRect"),a=new n,o=function(){};return o[si]={constructor:o,drawRectText:function(t,n,o){var s=this.style,l=s.text;if(null!=l&&(l+=""),l){t.save();var u,c,h=s.textPosition,d=s.textDistance,f=s[he],p=s.textFont||s.font,v=s.textBaseline,m=s.textVerticalAlign;o=o||i[le](l,p,f,v);var g=this[r];if(g&&(a.copy(n),a[k](g),n=a),h instanceof Array){if(u=n.x+e(h[0],n.width),c=n.y+e(h[1],n[Ye]),f=f||"left",v=v||"top",m){switch(m){case oe:c-=o[Ye]/2-o.lineHeight/2;break;case $e:c-=o[Ye]-o.lineHeight/2;break;default:c+=o.lineHeight/2}v=oe}}else{var y=i.adjustTextPositionOnRect(h,n,o,d);u=y.x,c=y.y,f=f||y[he],v=v||y.textBaseline}t[he]=f||"left",t.textBaseline=v||"alphabetic";var _=s.textFill,x=s.textStroke;_&&(t.fillStyle=_),x&&(t.strokeStyle=x),t.font=p,t.shadowBlur=s.textShadowBlur,t.shadowColor=s.textShadowColor||"transparent",t.shadowOffsetX=s.textShadowOffsetX,t.shadowOffsetY=s.textShadowOffsetY;for(var b=l.split("\n"),w=0;w<b[Ne];w++)_&&t.fillText(b[w],u,c),x&&t.strokeText(b[w],u,c),c+=o.lineHeight;t.restore()}}},o}),e("zrender/graphic/Displayable",[fi,i,"./Style","../Element","./mixin/RectText"],function(t){function e(t){t=t||{},a.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new r(t.style),this._rect=null,this.__clipPaths=[]}var n=t(i),r=t("./Style"),a=t("../Element"),o=t("./mixin/RectText");return e[si]={constructor:e,type:"displayable",__dirty:!0,invisible:!1,z:0,z2:0,zlevel:0,draggable:!1,dragging:!1,silent:!1,culling:!1,cursor:"pointer",rectHover:!1,progressive:-1,beforeBrush:function(){},afterBrush:function(){},brush:function(){},getBoundingRect:function(){},contain:function(t,e){return this.rectContain(t,e)},traverse:function(t,e){t.call(e,this)},rectContain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this[le]();return n[ee](i[0],i[1])},dirty:function(){this.__dirty=!0,this._rect=null,this.__zr&&this.__zr.refresh()},animateStyle:function(t){return this.animate("style",t)},attrKV:function(t,e){"style"!==t?a[si].attrKV.call(this,t,e):this.style.set(e)},setStyle:function(t,e){return this.style.set(t,e),this.dirty(!1),this},useStyle:function(t){return this.style=new r(t),this.dirty(!1),this}},n[me](e,a),n.mixin(e,o),e}),e("zrender/vml/core",[fi,"exports","module","../core/env"],function(t,e,i){if(!t("../core/env")[ei]){var n,r="urn:schemas-microsoft-com:vml",a=window,o=a.document,s=!1;try{!o.namespaces.zrvml&&o.namespaces.add("zrvml",r),n=function(t){return o[$]("<zrvml:"+t+' class="zrvml">')}}catch(l){n=function(t){return o[$]("<"+t+' xmlns="'+r+'" class="zrvml">')}}var u=function(){if(!s){s=!0;var t=o.styleSheets;t[Ne]<31?o.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}};i.exports={doc:o,initVML:u,createNode:n}}}),e("zrender/tool/transformPath",[fi,"../core/PathProxy","../core/vector"],function(t){function e(t,e){var n,l,u,c,h,d,f=t.data,p=i.M,v=i.C,m=i.L,g=i.R,y=i.A,_=i.Q;for(u=0,c=0;u<f[Ne];){switch(n=f[u++],c=u,l=0,n){case p:l=1;break;case m:l=1;break;case v:l=3;
    break;case _:l=2;break;case y:var x=e[4],b=e[5],w=o(e[0]*e[0]+e[1]*e[1]),M=o(e[2]*e[2]+e[3]*e[3]),S=s(-e[1]/M,e[0]/w);f[u++]+=x,f[u++]+=b,f[u++]*=w,f[u++]*=M,f[u++]+=S,f[u++]+=S,u+=2,c=u;break;case g:d[0]=f[u++],d[1]=f[u++],r(d,d,e),f[c++]=d[0],f[c++]=d[1],d[0]+=f[u++],d[1]+=f[u++],r(d,d,e),f[c++]=d[0],f[c++]=d[1]}for(h=0;l>h;h++){var d=a[h];d[0]=f[u++],d[1]=f[u++],r(d,d,e),f[c++]=d[0],f[c++]=d[1]}}}var i=t("../core/PathProxy").CMD,n=t("../core/vector"),r=n[k],a=[[],[],[]],o=Math.sqrt,s=Math.atan2;return e}),e("zrender/contain/path",[fi,"../core/PathProxy","./line","./cubic","./quadratic","./arc","./util","../core/curve","./windingLine"],function(t){function e(t,e){return Math.abs(t-e)<g}function i(){var t=_[0];_[0]=_[1],_[1]=t}function n(t,e,n,r,a,o,s,l,u,c){if(c>e&&c>r&&c>o&&c>l||e>c&&r>c&&o>c&&l>c)return 0;var h=f.cubicRootAt(e,r,o,l,c,y);if(0===h)return 0;for(var d,p,v=0,m=-1,g=0;h>g;g++){var x=y[g],b=0===x||1===x?.5:1,w=f.cubicAt(t,n,a,s,x);u>w||(0>m&&(m=f.cubicExtrema(e,r,o,l,_),_[1]<_[0]&&m>1&&i(),d=f.cubicAt(e,r,o,l,_[0]),m>1&&(p=f.cubicAt(e,r,o,l,_[1]))),v+=2==m?x<_[0]?e>d?b:-b:x<_[1]?d>p?b:-b:p>l?b:-b:x<_[0]?e>d?b:-b:d>l?b:-b)}return v}function r(t,e,i,n,r,a,o,s){if(s>e&&s>n&&s>a||e>s&&n>s&&a>s)return 0;var l=f.quadraticRootAt(e,n,a,s,y);if(0===l)return 0;var u=f.quadraticExtremum(e,n,a);if(u>=0&&1>=u){for(var c=0,h=f.quadraticAt(e,n,a,u),d=0;l>d;d++){var p=0===y[d]||1===y[d]?.5:1,v=f.quadraticAt(t,i,r,y[d]);o>v||(c+=y[d]<u?e>h?p:-p:h>a?p:-p)}return c}var p=0===y[0]||1===y[0]?.5:1,v=f.quadraticAt(t,i,r,y[0]);return o>v?0:e>a?p:-p}function a(t,e,i,n,r,a,o,s){if(s-=e,s>i||-i>s)return 0;var l=Math.sqrt(i*i-s*s);y[0]=-l,y[1]=l;var u=Math.abs(n-r);if(1e-4>u)return 0;if(1e-4>u%m){n=0,r=m;var c=a?1:-1;return o>=y[0]+t&&o<=y[1]+t?c:0}if(a){var l=n;n=d(r),r=d(l)}else n=d(n),r=d(r);n>r&&(r+=m);for(var h=0,f=0;2>f;f++){var p=y[f];if(p+t>o){var v=Math.atan2(s,p),c=a?1:-1;0>v&&(v=m+v),(v>=n&&r>=v||v+m>=n&&r>=v+m)&&(v>Math.PI/2&&v<1.5*Math.PI&&(c=-c),h+=c)}}return h}function o(t,i,o,l,d){for(var f=0,m=0,g=0,y=0,_=0,x=0;x<t[Ne];){var b=t[x++];switch(b===s.M&&x>1&&(o||(f+=p(m,g,y,_,l,d))),1==x&&(m=t[x],g=t[x+1],y=m,_=g),b){case s.M:y=t[x++],_=t[x++],m=y,g=_;break;case s.L:if(o){if(v(m,g,t[x],t[x+1],i,l,d))return!0}else f+=p(m,g,t[x],t[x+1],l,d)||0;m=t[x++],g=t[x++];break;case s.C:if(o){if(u.containStroke(m,g,t[x++],t[x++],t[x++],t[x++],t[x],t[x+1],i,l,d))return!0}else f+=n(m,g,t[x++],t[x++],t[x++],t[x++],t[x],t[x+1],l,d)||0;m=t[x++],g=t[x++];break;case s.Q:if(o){if(c.containStroke(m,g,t[x++],t[x++],t[x],t[x+1],i,l,d))return!0}else f+=r(m,g,t[x++],t[x++],t[x],t[x+1],l,d)||0;m=t[x++],g=t[x++];break;case s.A:var w=t[x++],M=t[x++],S=t[x++],T=t[x++],C=t[x++],L=t[x++],A=(t[x++],1-t[x++]),P=Math.cos(C)*S+w,I=Math.sin(C)*T+M;x>1?f+=p(m,g,P,I,l,d):(y=P,_=I);var k=(l-w)*T/S+w;if(o){if(h.containStroke(w,M,T,C,C+L,A,i,k,d))return!0}else f+=a(w,M,T,C,C+L,A,k,d);m=Math.cos(C+L)*S+w,g=Math.sin(C+L)*T+M;break;case s.R:y=m=t[x++],_=g=t[x++];var D=t[x++],z=t[x++],P=y+D,I=_+z;if(o){if(v(y,_,P,_,i,l,d)||v(P,_,P,I,i,l,d)||v(P,I,y,I,i,l,d)||v(y,I,y,_,i,l,d))return!0}else f+=p(P,_,P,I,l,d),f+=p(y,I,y,_,l,d);break;case s.Z:if(o){if(v(m,g,y,_,i,l,d))return!0}else f+=p(m,g,y,_,l,d);m=y,g=_}}return o||e(g,_)||(f+=p(m,g,y,_,l,d)||0),0!==f}var s=t("../core/PathProxy").CMD,l=t("./line"),u=t("./cubic"),c=t("./quadratic"),h=t("./arc"),d=t("./util").normalizeRadian,f=t("../core/curve"),p=t("./windingLine"),v=l.containStroke,m=2*Math.PI,g=1e-4,y=[-1,-1,-1],_=[-1,-1];return{contain:function(t,e,i){return o(t,0,!1,e,i)},containStroke:function(t,e,i,n){return o(t,e,!0,i,n)}}}),e("zrender/graphic/Pattern",[fi],function(){var t=function(t,e){this.image=t,this.repeat=e,this.type="pattern"};return t[si].getCanvasPattern=function(t){return this._canvasPattern||(this._canvasPattern=t.createPattern(this.image,this.repeat))},t}),e("echarts/scale/Ordinal",[fi,hi,"./Scale"],function(t){var e=t(hi),i=t("./Scale"),n=i[si],r=i[He]({type:"ordinal",init:function(t,e){this._data=t,this._extent=e||[0,t[Ne]-1]},parse:function(t){return typeof t===oi?e[ge](this._data,t):Math.round(t)},contain:function(t){return t=this.parse(t),n[ee].call(this,t)&&null!=this._data[t]},normalize:function(t){return n.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(n.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){return this._data[t]},count:function(){return this._extent[1]-this._extent[0]+1},niceTicks:e.noop,niceExtent:e.noop});return r[je]=function(){return new r},r}),e("echarts/model/mixin/makeStyleMapper",[fi,hi],function(t){var e=t(hi);return function(t){for(var i=0;i<t[Ne];i++)t[i][1]||(t[i][1]=t[i][0]);return function(i){for(var n={},r=0;r<t[Ne];r++){var a=t[r][1];if(!(i&&e[ge](i,a)>=0)){var o=this[N](a);null!=o&&(n[t[r][0]]=o)}}return n}}}),e("zrender/core/curve",[fi,"./vector"],function(t){function e(t){return t>-x&&x>t}function i(t){return t>x||-x>t}function n(t,e,i,n,r){var a=1-r;return a*a*(a*t+3*r*e)+r*r*(r*n+3*a*i)}function r(t,e,i,n,r){var a=1-r;return 3*(((e-t)*a+2*(i-e)*r)*a+(n-i)*r*r)}function a(t,i,n,r,a,o){var s=r+3*(i-n)-t,l=3*(n-2*i+t),u=3*(i-t),c=t-a,h=l*l-3*s*u,d=l*u-9*s*c,f=u*u-3*l*c,p=0;if(e(h)&&e(d))if(e(l))o[0]=0;else{var v=-u/l;v>=0&&1>=v&&(o[p++]=v)}else{var m=d*d-4*h*f;if(e(m)){var g=d/h,v=-l/s+g,x=-g/2;v>=0&&1>=v&&(o[p++]=v),x>=0&&1>=x&&(o[p++]=x)}else if(m>0){var b=_(m),S=h*l+1.5*s*(-d+b),T=h*l+1.5*s*(-d-b);S=0>S?-y(-S,M):y(S,M),T=0>T?-y(-T,M):y(T,M);var v=(-l-(S+T))/(3*s);v>=0&&1>=v&&(o[p++]=v)}else{var C=(2*h*l-3*s*d)/(2*_(h*h*h)),L=Math.acos(C)/3,A=_(h),P=Math.cos(L),v=(-l-2*A*P)/(3*s),x=(-l+A*(P+w*Math.sin(L)))/(3*s),I=(-l+A*(P-w*Math.sin(L)))/(3*s);v>=0&&1>=v&&(o[p++]=v),x>=0&&1>=x&&(o[p++]=x),I>=0&&1>=I&&(o[p++]=I)}}return p}function o(t,n,r,a,o){var s=6*r-12*n+6*t,l=9*n+3*a-3*t-9*r,u=3*n-3*t,c=0;if(e(l)){if(i(s)){var h=-u/s;h>=0&&1>=h&&(o[c++]=h)}}else{var d=s*s-4*l*u;if(e(d))o[0]=-s/(2*l);else if(d>0){var f=_(d),h=(-s+f)/(2*l),p=(-s-f)/(2*l);h>=0&&1>=h&&(o[c++]=h),p>=0&&1>=p&&(o[c++]=p)}}return c}function s(t,e,i,n,r,a){var o=(e-t)*r+t,s=(i-e)*r+e,l=(n-i)*r+i,u=(s-o)*r+o,c=(l-s)*r+s,h=(c-u)*r+u;a[0]=t,a[1]=o,a[2]=u,a[3]=h,a[4]=h,a[5]=c,a[6]=l,a[7]=n}function l(t,e,i,r,a,o,s,l,u,c,h){var d,f,p,v,m,y=.005,x=1/0;S[0]=u,S[1]=c;for(var w=0;1>w;w+=.05)T[0]=n(t,i,a,s,w),T[1]=n(e,r,o,l,w),v=g(S,T),x>v&&(d=w,x=v);x=1/0;for(var M=0;32>M&&!(b>y);M++)f=d-y,p=d+y,T[0]=n(t,i,a,s,f),T[1]=n(e,r,o,l,f),v=g(T,S),f>=0&&x>v?(d=f,x=v):(C[0]=n(t,i,a,s,p),C[1]=n(e,r,o,l,p),m=g(C,S),1>=p&&x>m?(d=p,x=m):y*=.5);return h&&(h[0]=n(t,i,a,s,d),h[1]=n(e,r,o,l,d)),_(x)}function u(t,e,i,n){var r=1-n;return r*(r*t+2*n*e)+n*n*i}function c(t,e,i,n){return 2*((1-n)*(e-t)+n*(i-e))}function h(t,n,r,a,o){var s=t-2*n+r,l=2*(n-t),u=t-a,c=0;if(e(s)){if(i(l)){var h=-u/l;h>=0&&1>=h&&(o[c++]=h)}}else{var d=l*l-4*s*u;if(e(d)){var h=-l/(2*s);h>=0&&1>=h&&(o[c++]=h)}else if(d>0){var f=_(d),h=(-l+f)/(2*s),p=(-l-f)/(2*s);h>=0&&1>=h&&(o[c++]=h),p>=0&&1>=p&&(o[c++]=p)}}return c}function d(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function f(t,e,i,n,r){var a=(e-t)*n+t,o=(i-e)*n+e,s=(o-a)*n+a;r[0]=t,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=i}function p(t,e,i,n,r,a,o,s,l){var c,h=.005,d=1/0;S[0]=o,S[1]=s;for(var f=0;1>f;f+=.05){T[0]=u(t,i,r,f),T[1]=u(e,n,a,f);var p=g(S,T);d>p&&(c=f,d=p)}d=1/0;for(var v=0;32>v&&!(b>h);v++){var m=c-h,y=c+h;T[0]=u(t,i,r,m),T[1]=u(e,n,a,m);var p=g(T,S);if(m>=0&&d>p)c=m,d=p;else{C[0]=u(t,i,r,y),C[1]=u(e,n,a,y);var x=g(C,S);1>=y&&d>x?(c=y,d=x):h*=.5}}return l&&(l[0]=u(t,i,r,c),l[1]=u(e,n,a,c)),_(d)}var v=t("./vector"),m=v[je],g=v.distSquare,y=Math.pow,_=Math.sqrt,x=1e-8,b=1e-4,w=_(3),M=1/3,S=m(),T=m(),C=m();return{cubicAt:n,cubicDerivativeAt:r,cubicRootAt:a,cubicExtrema:o,cubicSubdivide:s,cubicProjectPoint:l,quadraticAt:u,quadraticDerivativeAt:c,quadraticRootAt:h,quadraticExtremum:d,quadraticSubdivide:f,quadraticProjectPoint:p}}),e("zrender/core/bbox",[fi,"./vector","./curve"],function(t){var e=t("./vector"),i=t("./curve"),n={},r=Math.min,a=Math.max,o=Math.sin,s=Math.cos,l=e[je](),u=e[je](),c=e[je](),h=2*Math.PI;n.fromPoints=function(t,e,i){if(0!==t[Ne]){var n,o=t[0],s=o[0],l=o[0],u=o[1],c=o[1];for(n=1;n<t[Ne];n++)o=t[n],s=r(s,o[0]),l=a(l,o[0]),u=r(u,o[1]),c=a(c,o[1]);e[0]=s,e[1]=u,i[0]=l,i[1]=c}},n.fromLine=function(t,e,i,n,o,s){o[0]=r(t,i),o[1]=r(e,n),s[0]=a(t,i),s[1]=a(e,n)};var d=[],f=[];return n.fromCubic=function(t,e,n,o,s,l,u,c,h,p){var v,m=i.cubicExtrema,g=i.cubicAt,y=m(t,n,s,u,d);for(h[0]=1/0,h[1]=1/0,p[0]=-1/0,p[1]=-1/0,v=0;y>v;v++){var _=g(t,n,s,u,d[v]);h[0]=r(_,h[0]),p[0]=a(_,p[0])}for(y=m(e,o,l,c,f),v=0;y>v;v++){var x=g(e,o,l,c,f[v]);h[1]=r(x,h[1]),p[1]=a(x,p[1])}h[0]=r(t,h[0]),p[0]=a(t,p[0]),h[0]=r(u,h[0]),p[0]=a(u,p[0]),h[1]=r(e,h[1]),p[1]=a(e,p[1]),h[1]=r(c,h[1]),p[1]=a(c,p[1])},n.fromQuadratic=function(t,e,n,o,s,l,u,c){var h=i.quadraticExtremum,d=i.quadraticAt,f=a(r(h(t,n,s),1),0),p=a(r(h(e,o,l),1),0),v=d(t,n,s,f),m=d(e,o,l,p);u[0]=r(t,s,v),u[1]=r(e,l,m),c[0]=a(t,s,v),c[1]=a(e,l,m)},n.fromArc=function(t,i,n,r,a,d,f,p,v){var m=e.min,g=e.max,y=Math.abs(a-d);if(1e-4>y%h&&y>1e-4)return p[0]=t-n,p[1]=i-r,v[0]=t+n,void(v[1]=i+r);if(l[0]=s(a)*n+t,l[1]=o(a)*r+i,u[0]=s(d)*n+t,u[1]=o(d)*r+i,m(p,l,u),g(v,l,u),a%=h,0>a&&(a+=h),d%=h,0>d&&(d+=h),a>d&&!f?d+=h:d>a&&f&&(a+=h),f){var _=d;d=a,a=_}for(var x=0;d>x;x+=Math.PI/2)x>a&&(c[0]=s(x)*n+t,c[1]=o(x)*r+i,m(p,c,p),g(v,c,v))},n}),e("zrender/config",[],function(){var t=1;typeof window!==Q&&(t=Math.max(window.devicePixelRatio||1,1));var e={debugMode:0,devicePixelRatio:t};return e}),e("zrender/graphic/Style",[fi],function(){function t(t,e,i){var n=e.x,r=e.x2,a=e.y,o=e.y2;e.global||(n=n*i.width+i.x,r=r*i.width+i.x,a=a*i[Ye]+i.y,o=o*i[Ye]+i.y);var s=t.createLinearGradient(n,a,r,o);return s}function e(t,e,i){var n=i.width,r=i[Ye],a=Math.min(n,r),o=e.x,s=e.y,l=e.r;e.global||(o=o*n+i.x,s=s*r+i.y,l*=a);var u=t.createRadialGradient(o,s,0,o,s,l);return u}var i=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],n=function(t){this.extendFrom(t)};n[si]={constructor:n,fill:"#000000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,textFill:"#000",textStroke:null,textPosition:"inside",textBaseline:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,blend:null,bind:function(t,e,n){for(var r=this,a=n&&n.style,o=!a,s=0;s<i[Ne];s++){var l=i[s],u=l[0];(o||r[u]!==a[u])&&(t[u]=r[u]||l[1])}if((o||r.fill!==a.fill)&&(t.fillStyle=r.fill),(o||r[P]!==a[P])&&(t.strokeStyle=r[P]),(o||r[ne]!==a[ne])&&(t.globalAlpha=null==r[ne]?1:r[ne]),(o||r.blend!==a.blend)&&(t.globalCompositeOperation=r.blend||"source-over"),this.hasStroke()){var c=r[I];t[I]=c/(this.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1)}},hasFill:function(){var t=this.fill;return null!=t&&"none"!==t},hasStroke:function(){var t=this[P];return null!=t&&"none"!==t&&this[I]>0},extendFrom:function(t,e){if(t){var i=this;for(var n in t)!t.hasOwnProperty(n)||!e&&i.hasOwnProperty(n)||(i[n]=t[n])}},set:function(t,e){typeof t===oi?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(i,n,r){for(var a="radial"===n.type?e:t,o=a(i,n,r),s=n.colorStops,l=0;l<s[Ne];l++)o.addColorStop(s[l].offset,s[l].color);return o}};for(var r=n[si],a=0;a<i[Ne];a++){var o=i[a];o[0]in r||(r[o[0]]=o[1])}return n.getGradient=r.getGradient,n}),e("zrender/Element",[fi,"./core/guid","./mixin/Eventful","./mixin/Transformable","./mixin/Animatable","./core/util"],function(t){var e=t("./core/guid"),i=t("./mixin/Eventful"),n=t("./mixin/Transformable"),a=t("./mixin/Animatable"),o=t("./core/util"),s=function(t){n.call(this,t),i.call(this,t),a.call(this,t),this.id=t.id||e()};return s[si]={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this[r];i||(i=this[r]=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(){},attrKV:function(t,e){if(t===re||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this[Je]=!0,this.__zr&&this.__zr.refresh()},show:function(){this[Je]=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if(typeof t===oi)this.attrKV(t,e);else if(o[We](t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;i<e[Ne];i++)t[B].addAnimator(e[i]);this.clipPath&&this.clipPath.addSelfToZr(t)},removeSelfFromZr:function(t){this.__zr=null;var e=this.animators;if(e)for(var i=0;i<e[Ne];i++)t[B].removeAnimator(e[i]);this.clipPath&&this.clipPath.removeSelfFromZr(t)}},o.mixin(s,a),o.mixin(s,n),o.mixin(s,i),s}),e("echarts/component/visualMapContinuous",[fi,"../echarts","./visualMap/preprocessor","./visualMap/typeDefaulter","./visualMap/visualEncoding","./visualMap/ContinuousModel","./visualMap/ContinuousView","./visualMap/visualMapAction"],function(t){t("../echarts").registerPreprocessor(t("./visualMap/preprocessor")),t("./visualMap/typeDefaulter"),t("./visualMap/visualEncoding"),t("./visualMap/ContinuousModel"),t("./visualMap/ContinuousView"),t("./visualMap/visualMapAction")}),e("echarts/component/visualMapPiecewise",[fi,"../echarts","./visualMap/preprocessor","./visualMap/typeDefaulter","./visualMap/visualEncoding","./visualMap/PiecewiseModel","./visualMap/PiecewiseView","./visualMap/visualMapAction"],function(t){t("../echarts").registerPreprocessor(t("./visualMap/preprocessor")),t("./visualMap/typeDefaulter"),t("./visualMap/visualEncoding"),t("./visualMap/PiecewiseModel"),t("./visualMap/PiecewiseView"),t("./visualMap/visualMapAction")}),e("echarts/coord/cartesian/Cartesian",[fi,hi],function(t){function e(t){return this._axes[t]}var i=t(hi),n=function(t){this._axes={},this._dimList=[],this.name=t||""};return n[si]={constructor:n,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return i.map(this._dimList,e,this)},getAxesByScale:function(t){return t=t[li](),i[ye](this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,c)},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var i=this._dimList,n=t instanceof Array?[]:{},r=0;r<i[Ne];r++){var a=i[r],o=this._axes[a];n[a]=o[e](t[a])}return n}},n}),e("echarts/coord/geo/Geo",[fi,"./parseGeoJson",hi,z,"../View","./fix/nanhai","./fix/textCoord","./fix/geoCoord"],function(t){function e(t,e,i,n,r){o.call(this,t),this.map=e,this._nameCoordMap={},this.loadGeoJson(i,n,r)}var i=t("./parseGeoJson"),n=t(hi),a=t(z),o=t("../View"),s=[t("./fix/nanhai"),t("./fix/textCoord"),t("./fix/geoCoord")];return e[si]={constructor:e,type:"geo",dimensions:["lng","lat"],containCoord:function(t){for(var e=this.regions,i=0;i<e[Ne];i++)if(e[i][ee](t))return!0;return!1},loadGeoJson:function(t,e,r){try{this.regions=t?i(t):[]}catch(a){throw"Invalid geoJson format\n"+a}e=e||{},r=r||{};for(var o=this.regions,l={},u=0;u<o[Ne];u++){var c=o[u].name;c=r[c]||c,o[u].name=c,l[c]=o[u],this.addGeoCoord(c,o[u][ae]);var h=e[c];h&&o[u].transformTo(h.left,h.top,h.width,h[Ye])}this._regionsMap=l,this._rect=null,n.each(s,function(t){t(this)},this)},transformTo:function(t,e,i,n){var o=this[le]();o=o.clone(),o.y=-o.y-o[Ye];var s=this._viewTransform;s[r]=o.calculateTransform(new a(t,e,i,n)),s.decomposeTransform();var l=s.scale;l[1]=-l[1],s.updateTransform(),this._updateTransform()},getRegion:function(t){return this._regionsMap[t]},getRegionByCoord:function(t){for(var e=this.regions,i=0;i<e[Ne];i++)if(e[i][ee](t))return e[i]},addGeoCoord:function(t,e){this._nameCoordMap[t]=e},getGeoCoord:function(t){return this._nameCoordMap[t]},getBoundingRect:function(){if(this._rect)return this._rect;for(var t,e=this.regions,i=0;i<e[Ne];i++){var n=e[i][le]();t=t||n.clone(),t.union(n)}return this._rect=t||new a(0,0,0,0)},dataToPoints:function(t){var e=[];return t[_](["lng","lat"],function(t,i){return e[0]=t,e[1]=i,this[f](e)},this)},dataToPoint:function(t){return typeof t===oi&&(t=this.getGeoCoord(t)),t?o[si][f].call(this,t):void 0}},n.mixin(e,o),e}),e("echarts/component/dataZoom/AxisProxy",[fi,hi,a],function(t){function e(t,e){var i=[1/0,-1/0];return l(e,function(e){var n=e[qe]();n&&l(e.coordDimToDataDim(t),function(t){var e=n[x](t);e[0]<i[0]&&(i[0]=e[0]),e[1]>i[1]&&(i[1]=e[1])})},this),i}function i(t,e,i){var r=i.getAxisModel(),a=r.axis.scale,o=[0,100],u=[t.start,t.end],h=[];return e=e.slice(),n(e,r,a),l(["startValue","endValue"],function(e){h.push(null!=t[e]?a.parse(t[e]):null)}),l([0,1],function(t){var i=h[t],n=u[t];null!=n||null==i?(null==n&&(n=o[t]),i=a.parse(s[y](n,o,e,!0))):n=s[y](i,e,o,!0),h[t]=i,u[t]=n}),{valueWindow:c(h),percentWindow:c(u)}}function n(t,e,i){return l(["min","max"],function(n,r){var a=e.get(n,!0);null!=a&&(a+"")[li]()!=="data"+n&&(t[r]=i.parse(a))}),e.get("scale",!0)||(t[0]>0&&(t[0]=0),t[1]<0&&(t[1]=0)),t}function r(t,e){var i=t.getAxisModel(),n=t._percentWindow,r=t._valueWindow;if(n){var a=e||0===n[0]&&100===n[1],o=!e&&s.getPixelPrecision(r,[0,500]),l=!(e||20>o&&o>=0),u=e||a||l;i.setRange&&i.setRange(u?null:+r[0][m](o),u?null:+r[1][m](o))}}var o=t(hi),s=t(a),l=o.each,c=s.asc,h=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this[W]=n,this._dataZoomModel=i};return h[si]={constructor:h,hostedBy:function(t){return this._dataZoomModel===t},getDataExtent:function(){return this._dataExtent.slice()},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[];return this[W][Ue](function(e){this._axisIndex===e.get(this._dimName+"AxisIndex")&&t.push(e)},this),t},getAxisModel:function(){return this[W][U](this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this[W],r=this.getAxisModel(),a="x"===i||"y"===i;a?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?u:"angle");var o;return n[Qe](t+"Axis",function(t){(t.get(e)||0)===(r.get(e)||0)&&(o=t)}),o},reset:function(t){if(t===this._dataZoomModel){var n=this._dataExtent=e(this._dimName,this.getTargetSeriesModels()),a=i(t[Y],n,this);this._valueWindow=a.valueWindow,this._percentWindow=a.percentWindow,r(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,r(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),a=this._valueWindow,o=this.getOtherAxisModel();t.get("$fromToolbox")&&o&&o.get("type")===v&&(r="empty"),l(n,function(t){var n=t[qe]();n&&l(t.coordDimToDataDim(i),function(i){"empty"===r?t.setData(n.map(i,function(t){return e(t)?t:0/0})):n.filterSelf(i,e)})})}}},h}),e("zrender/core/guid",[],function(){var t=2311;return function(){return t++}}),e("zrender/mixin/Transformable",[fi,"../core/matrix","../core/vector"],function(t){function e(t){return t>o||-o>t}var i=t("../core/matrix"),n=t("../core/vector"),a=i.identity,o=5e-5,s=function(t){t=t||{},t[re]||(this[re]=[0,0]),null==t[T]&&(this[T]=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},l=s[si];l[r]=null,l.needLocalTransform=function(){return e(this[T])||e(this[re][0])||e(this[re][1])||e(this.scale[0]-1)||e(this.scale[1]-1)},l.updateTransform=function(){var t=this[C],e=t&&t[r],n=this.needLocalTransform(),o=this[r];return n||e?(o=o||i[je](),n?this.getLocalTransform(o):a(o),e&&(n?i.mul(o,t[r],o):i.copy(o,t[r])),this[r]=o,this.invTransform=this.invTransform||i[je](),void i.invert(this.invTransform,o)):void(o&&a(o))},l.getLocalTransform=function(t){t=t||[],a(t);var e=this.origin,n=this.scale,r=this[T],o=this[re];return e&&(t[4]-=e[0],t[5]-=e[1]),i.scale(t,t,n),r&&i.rotate(t,t,r),e&&(t[4]+=e[0],t[5]+=e[1]),t[4]+=o[0],t[5]+=o[1],t},l.setTransform=function(t){var e=this[r];e&&t[r](e[0],e[1],e[2],e[3],e[4],e[5])},l.restoreTransform=function(t){var e=this.invTransform;e&&t[r](e[0],e[1],e[2],e[3],e[4],e[5])};var u=[];return l.decomposeTransform=function(){if(this[r]){var t=this[C],n=this[r];t&&t[r]&&(i.mul(u,t.invTransform,n),n=u);var a=n[0]*n[0]+n[1]*n[1],o=n[2]*n[2]+n[3]*n[3],s=this[re],l=this.scale;e(a-1)&&(a=Math.sqrt(a)),e(o-1)&&(o=Math.sqrt(o)),n[0]<0&&(a=-a),n[3]<0&&(o=-o),s[0]=n[4],s[1]=n[5],l[0]=a,l[1]=o,this[T]=Math.atan2(-n[1]/o,n[0]/a)}},l.getGlobalScale=function(){var t=this[r];if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(i=-i),[e,i]},l.transformCoordToLocal=function(t,e){var i=[t,e],r=this.invTransform;return r&&n[k](i,i,r),i},l.transformCoordToGlobal=function(t,e){var i=[t,e],a=this[r];return a&&n[k](i,i,a),i},s}),e("zrender/mixin/Animatable",[fi,"../animation/Animator",i,"../core/log"],function(t){var e=t("../animation/Animator"),n=t(i),r=n.isString,a=n.isFunction,o=n[We],s=t("../core/log"),l=function(){this.animators=[]};return l[si]={constructor:l,animate:function(t,i){var r,a=!1,o=this,l=this.__zr;if(t){var u=t.split("."),c=o;a="shape"===u[0];for(var h=0,d=u[Ne];d>h;h++)c&&(c=c[u[h]]);c&&(r=c)}else r=o;if(!r)return void s('Property "'+t+'" is not existed in element '+o.id);var f=o.animators,p=new e(r,i);return p.during(function(){o.dirty(a)}).done(function(){f[Oe](n[ge](f,p),1)}),f.push(p),l&&l[B].addAnimator(p),p},stopAnimation:function(t){for(var e=this.animators,i=e[Ne],n=0;i>n;n++)e[n].stop(t);return e[Ne]=0,this},animateTo:function(t,e,i,n,o){function s(){u--,u||o&&o()}r(i)?(o=n,n=i,i=0):a(n)?(o=n,n="linear",i=0):a(i)?(o=i,i=0):a(e)?(o=e,e=500):e||(e=500),this.stopAnimation(),this._animateToShallow("",this,t,e,i,n,o);var l=this.animators.slice(),u=l[Ne];u||o&&o();for(var c=0;c<l[Ne];c++)l[c].done(s).start(n)},_animateToShallow:function(t,e,i,r,a){var s={},l=0;for(var u in i)if(null!=e[u])o(i[u])&&!n.isArrayLike(i[u])?this._animateToShallow(t?t+"."+u:u,e[u],i[u],r,a):(s[u]=i[u],l++);else if(null!=i[u])if(t){var c={};c[t]={},c[t][u]=i[u],this.attr(c)}else this.attr(u,i[u]);return l>0&&this.animate(t,!1).when(null==r?500:r,s).delay(a||0),this}},l}),e("echarts/component/visualMap/preprocessor",[fi,hi],function(t){function e(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}var i=t(hi),n=i.each;return function(t){var r=t&&t.visualMap;i[Se](r)||(r=r?[r]:[]),n(r,function(t){if(t){e(t,"splitList")&&!e(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var r=t.pieces;r&&i[Se](r)&&n(r,function(t){i[We](t)&&(e(t,"start")&&!e(t,"min")&&(t.min=t.start),e(t,"end")&&!e(t,"max")&&(t.max=t.end))})}})}}),e("echarts/component/visualMap/typeDefaulter",[fi,"../../model/Component"],function(t){t("../../model/Component").registerSubTypeDefaulter("visualMap",function(t){return t.categories||(t.pieces?t.pieces[Ne]>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})}),e("echarts/component/visualMap/visualEncoding",[fi,h,"../../visual/visualSolution","../../visual/VisualMapping",hi],function(t){function e(t){t.eachTargetSeries(function(e){var i=e[qe]();a.applyVisual(t.stateList,t.targetVisuals,i,t.getValueState,t,t.getDataDimension(i))})}function i(t){t[Ue](function(e){var i=e[qe](),r=[];t[Qe]("visualMap",function(t){var a={};r.push(a);a.stops=t.getStops(e,n);a.dimension=t.getDataDimension(i)}),e[qe]().setVisual("visualMeta",r)})}function n(t,e,i){function n(t){return l[t]}function r(t,e){l[t]=e}for(var a=t.targetVisuals[i],s=o.prepareVisualTypes(a),l={},u=0,c=s[Ne];c>u;u++){var h=s[u],d=a["colorAlpha"===h?"__alphaForOpacity":h];d&&d.applyVisual(e,n,r)}return l.color}{var r=t(h),a=t("../../visual/visualSolution"),o=t("../../visual/VisualMapping");t(hi)}r.registerVisual(r.PRIORITY.VISUAL.COMPONENT,function(t){t[Qe]("visualMap",function(i){e(i,t)}),i(t)})}),e("echarts/component/visualMap/visualMapAction",[fi,h],function(t){var e=t(h),i={type:"selectDataRange",event:"dataRangeSelected",update:"update"};e[we](i,function(t,e){e[Qe]({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})})}),e("echarts/coord/Axis",[fi,ie,hi],function(t){function e(t,e){var i=t[1]-t[0],n=e,r=i/n/2;t[0]+=r,t[1]-=r}var i=t(ie),n=i[y],r=t(hi),a=[0,1],o=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};return o[si]={constructor:o,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&n>=t},containData:function(t){return this[ee](this[c](t))},getExtent:function(){var t=this._extent.slice();return t},getPixelPrecision:function(t){return i.getPixelPrecision(t||this.scale[K](),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,i){var r=this._extent,o=this.scale;return t=o.normalize(t),this.onBand&&o.type===b&&(r=r.slice(),e(r,o.count())),n(t,a,r,i)},coordToData:function(t,i){var r=this._extent,o=this.scale;this.onBand&&o.type===b&&(r=r.slice(),e(r,o.count()));var s=n(t,r,a,i);return this.scale.scale(s)},getTicksCoords:function(){if(this.onBand){for(var t=this.getBands(),e=[],i=0;i<t[Ne];i++)e.push(t[i][0]);return t[i-1]&&e.push(t[i-1][1]),e}return r.map(this.scale.getTicks(),this[c],this)},getLabelsCoords:function(){if(this.onBand){for(var t,e=this.getBands(),i=[],n=0;n<e[Ne];n++)t=e[n],i.push((t[0]+t[1])/2);return i}return r.map(this.scale.getTicks(),this[c],this)},getBands:function(){for(var t=this[K](),e=[],i=this.scale.count(),n=t[0],r=t[1],a=r-n,o=0;i>o;o++)e.push([a*o/i+n,a*(o+1)/i+n]);return e},getBandWidth:function(){var t=this._extent,e=this.scale[K](),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i}},o}),e("echarts/coord/cartesian/axisLabelInterval",[fi,hi,"../axisHelper"],function(t){var e=t(hi),i=t("../axisHelper");return function(t){var n=t.model,r=n[ri]("axisLabel"),a=r.get(l);return t.type!==v||"auto"!==a?"auto"===a?0:a:i.getAxisLabelInterval(e.map(t.scale.getTicks(),t[c],t),n.getFormattedLabels(),r[ri](de)[ce](),t.isHorizontal())}}),e("echarts/coord/geo/parseGeoJson",[fi,hi,"./Region"],function(t){function e(t){if(!t.UTF8Encoding)return t;for(var e=t.features,n=0;n<e[Ne];n++)for(var r=e[n],a=r.geometry,o=a.coordinates,s=a.encodeOffsets,l=0;l<o[Ne];l++){var u=o[l];if(a.type===D)o[l]=i(u,s[l]);else if("MultiPolygon"===a.type)for(var c=0;c<u[Ne];c++){var h=u[c];u[c]=i(h,s[l][c])}}return t.UTF8Encoding=!1,t}function i(t,e){for(var i=[],n=e[0],r=e[1],a=0;a<t[Ne];a+=2){var o=t.charCodeAt(a)-64,s=t.charCodeAt(a+1)-64;o=o>>1^-(1&o),s=s>>1^-(1&s),o+=n,s+=r,n=o,r=s,i.push([o/1024,s/1024])}return i}function n(t){for(var e=[],i=0;i<t[Ne];i++)for(var n=0;n<t[i][Ne];n++)e.push(t[i][n]);return e}var r=t(hi),a=t("./Region");return function(t){return e(t),r.map(r[ye](t.features,function(t){return t.geometry&&t.properties}),function(t){var e=t.properties,i=t.geometry,r=i.coordinates;return"MultiPolygon"===i.type&&(r=n(r)),new a(e.name,r,e.cp)})}}),e("echarts/coord/View",[fi,ui,"zrender/core/matrix","zrender/mixin/Transformable",hi,z],function(t){function e(){o.call(this)}function i(t){this.name=t,this.zoomLimit,o.call(this),this._roamTransform=new e,this._viewTransform=new e,this._center,this._zoom}var n=t(ui),a=t("zrender/core/matrix"),o=t("zrender/mixin/Transformable"),s=t(hi),l=t(z),u=n[k];return s.mixin(e,o),i[si]={constructor:i,type:"view",dimensions:["x","y"],setBoundingRect:function(t,e,i,n){return this._rect=new l(t,e,i,n),this._rect},getBoundingRect:function(){return this._rect},setViewRect:function(t,e,i,n){i=i,n=n,this.transformTo(t,e,i,n),this._viewRect=new l(t,e,i,n)},transformTo:function(t,e,i,n){var a=this[le](),o=this._viewTransform;o[r]=a.calculateTransform(new l(t,e,i,n)),o.decomposeTransform(),this._updateTransform()},setCenter:function(t){t&&(this._center=t,this._updateCenterAndZoom())},setZoom:function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},getDefaultCenter:function(){var t=this[le](),e=t.x+t.width/2,i=t.y+t[Ye]/2;return[e,i]},getCenter:function(){return this._center||this.getDefaultCenter()},getZoom:function(){return this._zoom||1},getRoamTransform:function(){return this._roamTransform},_updateCenterAndZoom:function(){var t=this._viewTransform.getLocalTransform(),e=this._roamTransform,i=this.getDefaultCenter(),r=this.getCenter(),a=this.getZoom();r=n[k]([],r,t),i=n[k]([],i,t),e.origin=r,e[re]=[i[0]-r[0],i[1]-r[1]],e.scale=[a,a],this._updateTransform()},_updateTransform:function(){var t=this._roamTransform,e=this._viewTransform;e[C]=t,t.updateTransform(),e.updateTransform(),e[r]&&a.copy(this[r]||(this[r]=[]),e[r]),this[r]?(this.invTransform=this.invTransform||[],a.invert(this.invTransform,this[r])):this.invTransform=null,this.decomposeTransform()},getViewRect:function(){return this._viewRect},getViewRectAfterRoam:function(){var t=this[le]().clone();return t[k](this[r]),t},dataToPoint:function(t){var e=this[r];return e?u([],t,e):[t[0],t[1]]},pointToData:function(t){var e=this.invTransform;return e?u([],t,e):[t[0],t[1]]}},s.mixin(i,o),i}),e("echarts/coord/geo/fix/nanhai",[fi,"../Region"],function(t){for(var e=t("../Region"),i=[126,25],n=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],r=0;r<n[Ne];r++)for(var a=0;a<n[r][Ne];a++)n[r][a][0]/=10.5,n[r][a][1]/=-14,n[r][a][0]+=i[0],n[r][a][1]+=i[1];return function(t){"china"===t.map&&t.regions.push(new e("南海诸岛",n,i))}}),e("echarts/coord/geo/fix/textCoord",[fi,hi],function(t){var e=t(hi),i={"南海诸岛":[32,80],"广东":[0,-10],"香港":[10,5],"澳门":[-10,10],"天津":[5,5]};return function(t){e.each(t.regions,function(t){var e=i[t.name];if(e){var n=t[ae];n[0]+=e[0]/10.5,n[1]+=-e[1]/14}})}}),e("echarts/coord/geo/fix/geoCoord",[fi,hi],function(t){var e=t(hi),i={Russia:[100,60],"United States of America":[-99,38]};return function(t){e.each(t.regions,function(t){var e=i[t.name];if(e){var n=t[ae];n[0]=e[0],n[1]=e[1]}})}}),e("zrender/animation/Animator",[fi,"./Clip","../tool/color",i],function(t){function e(t,e){return t[e]}function n(t,e,i){t[e]=i}function r(t,e,i){return(e-t)*i+t}function a(t,e,i){return i>.5?e:t}function o(t,e,i,n,a){var o=t[Ne];if(1==a)for(var s=0;o>s;s++)n[s]=r(t[s],e[s],i);else for(var l=t[0][Ne],s=0;o>s;s++)for(var u=0;l>u;u++)n[s][u]=r(t[s][u],e[s][u],i)}function s(t,e,i){var n=t[Ne],r=e[Ne];if(n!==r){var a=n>r;if(a)t[Ne]=r;else for(var o=n;r>o;o++)t.push(1===i?e[o]:y.call(e[o]))}for(var s=t[0]&&t[0][Ne],o=0;o<t[Ne];o++)if(1===i)isNaN(t[o])&&(t[o]=e[o]);else for(var l=0;s>l;l++)isNaN(t[o][l])&&(t[o][l]=e[o][l])}function l(t,e,i){if(t===e)return!0;var n=t[Ne];if(n!==e[Ne])return!1;if(1===i){for(var r=0;n>r;r++)if(t[r]!==e[r])return!1}else for(var a=t[0][Ne],r=0;n>r;r++)for(var o=0;a>o;o++)if(t[r][o]!==e[r][o])return!1;
    return!0}function u(t,e,i,n,r,a,o,s,l){var u=t[Ne];if(1==l)for(var h=0;u>h;h++)s[h]=c(t[h],e[h],i[h],n[h],r,a,o);else for(var d=t[0][Ne],h=0;u>h;h++)for(var f=0;d>f;f++)s[h][f]=c(t[h][f],e[h][f],i[h][f],n[h][f],r,a,o)}function c(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function h(t){if(g(t)){var e=t[Ne];if(g(t[0])){for(var i=[],n=0;e>n;n++)i.push(y.call(t[n]));return i}return y.call(t)}return t}function d(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function f(t,e,i,n,h){var f=t._getter,m=t._setter,y="spline"===e,_=n[Ne];if(_){var x,b=n[0].value,w=g(b),M=!1,S=!1,T=w&&g(b[0])?2:1;n.sort(function(t,e){return t.time-e.time}),x=n[_-1].time;for(var C=[],L=[],A=n[0].value,P=!0,I=0;_>I;I++){C.push(n[I].time/x);var k=n[I].value;if(w&&l(k,A,T)||!w&&k===A||(P=!1),A=k,typeof k==oi){var D=v.parse(k);D?(k=D,M=!0):S=!0}L.push(k)}if(!P){for(var z=L[_-1],I=0;_-1>I;I++)w?s(L[I],z,T):!isNaN(L[I])||isNaN(z)||S||M||(L[I]=z);w&&s(f(t._target,h),z,T);var R,O,V,E,B,N,Z=0,G=0;if(M)var H=[0,0,0,0];var F=function(t,e){var i;if(G>e){for(R=Math.min(Z+1,_-1),i=R;i>=0&&!(C[i]<=e);i--);i=Math.min(i,_-2)}else{for(i=Z;_>i&&!(C[i]>e);i++);i=Math.min(i-1,_-2)}Z=i,G=e;var n=C[i+1]-C[i];if(0!==n)if(O=(e-C[i])/n,y)if(E=L[i],V=L[0===i?i:i-1],B=L[i>_-2?_-1:i+1],N=L[i>_-3?_-1:i+2],w)u(V,E,B,N,O,O*O,O*O*O,f(t,h),T);else{var s;if(M)s=u(V,E,B,N,O,O*O,O*O*O,H,1),s=d(H);else{if(S)return a(E,B,O);s=c(V,E,B,N,O,O*O,O*O*O)}m(t,h,s)}else if(w)o(L[i],L[i+1],O,f(t,h),T);else{var s;if(M)o(L[i],L[i+1],O,H,1),s=d(H);else{if(S)return a(L[i],L[i+1],O);s=r(L[i],L[i+1],O)}m(t,h,s)}},W=new p({target:t._target,life:x,loop:t._loop,delay:t._delay,onframe:F,ondestroy:i});return e&&"spline"!==e&&(W.easing=e),W}}}var p=t("./Clip"),v=t("../tool/color"),m=t(i),g=m.isArrayLike,y=Array[si].slice,_=function(t,i,r,a){this._tracks={},this._target=t,this._loop=i||!1,this._getter=r||e,this._setter=a||n,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};return _[si]={when:function(t,e){var i=this._tracks;for(var n in e){if(!i[n]){i[n]=[];var r=this._getter(this._target,n);if(null==r)continue;0!==t&&i[n].push({time:0,value:h(r)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},_doneCallback:function(){this._tracks={},this._clipList[Ne]=0;for(var t=this._doneList,e=t[Ne],i=0;e>i;i++)t[i].call(this)},start:function(t){var e,i=this,n=0,r=function(){n--,n||i._doneCallback()};for(var a in this._tracks){var o=f(this,t,r,this._tracks[a],a);o&&(this._clipList.push(o),n++,this[B]&&this[B].addClip(o),e=o)}if(e){var s=e.onframe;e.onframe=function(t,e){s(t,e);for(var n=0;n<i._onframeList[Ne];n++)i._onframeList[n](t,e)}}return n||this._doneCallback(),this},stop:function(t){for(var e=this._clipList,i=this[B],n=0;n<e[Ne];n++){var r=e[n];t&&r.onframe(this._target,1),i&&i.removeClip(r)}e[Ne]=0},delay:function(t){return this._delay=t,this},done:function(t){return t&&this._doneList.push(t),this},getClips:function(){return this._clipList}},_}),e("zrender/core/log",[fi,"../config"],function(t){var e=t("../config");return function(){if(0!==e.debugMode)if(1==e.debugMode)for(var t in arguments)throw new Error(arguments[t]);else if(e.debugMode>1)for(var t in arguments)console.log(arguments[t])}}),e("echarts/component/visualMap/ContinuousModel",[fi,"./VisualMapModel",hi,a],function(t){function e(t,e,i){var n=t.targetVisuals[e].color;if(!n)return i.slice();var r=n[Y].visual[Ne];if(1>=r||i[0]===i[1])return i.slice();for(var a=(i[1]-i[0])/(r-1),o=i[0],s=[],l=0;r>l&&o<i[1];l++)s.push(o),o+=a;return s.push(i[1]),s}function i(t,i,n,r){var a=e(t,i,n);o.each(a,function(t){for(var e={value:t,valueState:i},n=0,a=0;a<r[Ne];a++){if(n|="inRange"===r[a].valueState,t<r[a].value)return void r[Oe](a,0,e);n&&(r[a].valueState="inRange")}r.push(e)})}var r=t("./VisualMapModel"),o=t(hi),s=t(a),l=[20,140],u=r[He]({type:"visualMap.continuous",defaultOption:{align:"auto",calculable:!1,range:null,realtime:!0,itemHeight:null,itemWidth:null,hoverLink:!0,hoverLinkDataSize:null,hoverLinkOnHandle:!0},optionUpdated:function(){u.superApply(this,"optionUpdated",arguments),this.resetTargetSeries(),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this[K]()}),this._resetRange()},resetItemSize:function(){u.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t[n](),(null==t[0]||isNaN(t[0]))&&(t[0]=l[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=l[1])},_resetRange:function(){var t=this[K](),e=this[Y].range;!e||e.auto?(t.auto=1,this[Y].range=t):o[Se](e)&&(e[0]>e[1]&&e[n](),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){r[si].completeVisualOption.apply(this,arguments),o.each(this.stateList,function(t){var e=this[Y].controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this[Y].range=t.slice(),this._resetRange()},getSelected:function(){var t=this[K](),e=s.asc((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]<t[0]&&(e[0]=t[0]),e[1]<t[0]&&(e[1]=t[0]),e},getValueState:function(t){var e=this[Y].range,i=this[K]();return(e[0]<=i[0]||e[0]<=t)&&(e[1]>=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],r=i[qe]();r.each(this.getDataDimension(r),function(e,i){t[0]<=e&&e<=t[1]&&n.push(i)},!0,this),e.push({seriesId:i.id,dataIndex:n})},this),e},getStops:function(t,e){if(this.isTargetSeries(t)){var n=[];return i(this,"outOfRange",this[K](),n),i(this,"inRange",this[Y].range.slice(),n),o.each(n,function(t){t.color=e(this,t.value,t.valueState)},this),n}}});return u}),e("echarts/component/visualMap/ContinuousView",[fi,"./VisualMapView",d,hi,a,"../helper/sliderMove","zrender/graphic/LinearGradient","./helper",o],function(t){function e(t,e,i,n){return new u[D]({shape:{points:t},draggable:!!i,cursor:e,drift:i,ondragend:n})}function i(t,e){return 0===t?[[0,0],[e,0],[e,-e]]:[[0,0],[e,0],[e,e]]}function n(t,e,i,n){return t?[[0,-x(e,b(i,0))],[M,0],[0,x(e,b(n-i,0))]]:[[0,0],[5,-5],[5,5]]}function r(t,e,i){var n=w/2,r=t.get("hoverLinkDataSize");return r&&(n=g(r,e,i,!0)/2),n}function s(t){return!t.get("realtime")&&t.get("hoverLinkOnHandle")}var l=t("./VisualMapView"),u=t(d),c=t(hi),h=t(a),f=t("../helper/sliderMove"),p=t("zrender/graphic/LinearGradient"),v=t("./helper"),m=t(o),g=h[y],_=c.each,x=Math.min,b=Math.max,w=12,M=6,T=l[He]({type:"visualMap.continuous",init:function(){T.superApply(this,"init",arguments),this._shapes={},this._dataInterval=[],this._handleEnds=[],this._orient,this._useHandle,this._hoverLinkDataIndices=[],this._dragging,this._hovering},doRender:function(t,e,i,n){n&&"selectDataRange"===n.type&&n.from===this.uid||this._buildView()},_buildView:function(){this.group[ve]();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var i=t.get("text");this._renderEndsText(e,i,0),this._renderEndsText(e,i,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},_renderEndsText:function(t,e,i){if(e){var n=e[1-i];n=null!=n?n+"":"";var r=this.visualMapModel,a=r.get("textGap"),o=r.itemSize,s=this._shapes.barGroup,l=this._applyTransform([o[0]/2,0===i?-a:o[1]+a],s),c=this._applyTransform(0===i?$e:"top",s),h=this._orient,d=this.visualMapModel.textStyleModel;this.group.add(new u.Text({style:{x:l[0],y:l[1],textVerticalAlign:"horizontal"===h?oe:c,textAlign:"horizontal"===h?c:ae,text:n,textFont:d[ce](),fill:d[ue]()}}))}},_renderBar:function(t){var i=this.visualMapModel,n=this._shapes,r=i.itemSize,a=this._orient,o=this._useHandle,s=v.getItemAlign(i,this.api,r),l=n.barGroup=this._createBarGroup(s);l.add(n.outOfRange=e()),l.add(n.inRange=e(null,o?"move":null,c.bind(this._dragHandle,this,"all",!1),c.bind(this._dragHandle,this,"all",!0)));var u=i.textStyleModel.getTextRect("国"),h=b(u.width,u[Ye]);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(l,0,r,h,a,s),this._createHandle(l,1,r,h,a,s)),this._createIndicator(l,r,h,a),t.add(l)},_createHandle:function(t,n,r,a,o){var s=c.bind(this._dragHandle,this,n,!1),l=c.bind(this._dragHandle,this,n,!0),h=e(i(n,a),"move",s,l);h[re][0]=r[0],t.add(h);var d=this.visualMapModel.textStyleModel,f=new u.Text({draggable:!0,drift:s,ondragend:l,style:{x:0,y:0,text:"",textFont:d[ce](),fill:d[ue]()}});this.group.add(f);var p=["horizontal"===o?a/2:1.5*a,"horizontal"===o?0===n?-(1.5*a):1.5*a:0===n?-a/2:a/2],v=this._shapes;v.handleThumbs[n]=h,v.handleLabelPoints[n]=p,v.handleLabels[n]=f},_createIndicator:function(t,i,n,r){var a=e([[0,0]],"move");a[re][0]=i[0],a.attr({invisible:!0,silent:!0}),t.add(a);var o=this.visualMapModel.textStyleModel,s=new u.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textFont:o[ce](),fill:o[ue]()}});this.group.add(s);var l=["horizontal"===r?n/2:M+3,0],c=this._shapes;c.indicator=a,c.indicatorLabel=s,c.indicatorLabelPoint=l},_dragHandle:function(t,e,i,n){if(this._useHandle){if(this._dragging=!e,!e){var r=this._applyTransform([i,n],this._shapes.barGroup,!0);this._updateInterval(t,r[1]),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api[Ge]({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():s(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},_resetInterval:function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),i=t[K](),n=[0,t.itemSize[1]];this._handleEnds=[g(e[0],i,n,!0),g(e[1],i,n,!0)]},_updateInterval:function(t,e){e=e||0;var i=this.visualMapModel,n=this._handleEnds;f(e,n,[0,i.itemSize[1]],"all"===t?"rigid":"push",t);var r=i[K](),a=[0,i.itemSize[1]];this._dataInterval=[g(n[0],a,r,!0),g(n[1],a,r,!0)]},_updateView:function(t){var e=this.visualMapModel,i=e[K](),n=this._shapes,r=[0,e.itemSize[1]],a=t?r:this._handleEnds,o=this._createBarVisual(this._dataInterval,i,a,"inRange"),s=this._createBarVisual(i,i,r,"outOfRange");n.inRange[Le]({fill:o.barColor,opacity:o[ne]})[S]("points",o.barPoints),n.outOfRange[Le]({fill:s.barColor,opacity:s[ne]})[S]("points",s.barPoints),this._updateHandle(a,o)},_createBarVisual:function(t,e,i,n){var r={forceState:n,convertOpacityToAlpha:!0},a=this._makeColorGradient(t,r),o=[this.getControllerVisual(t[0],"symbolSize",r),this.getControllerVisual(t[1],"symbolSize",r)],s=this._createBarPoints(i,o);return{barColor:new p(0,0,1,1,a),barPoints:s,handlesColor:[a[0].color,a[a[Ne]-1].color]}},_makeColorGradient:function(t,e){var i=100,n=[],r=(t[1]-t[0])/i;n.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var a=1;i>a;a++){var o=t[0]+r*a;if(o>t[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:a/i})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new u.Group("horizontal"!==e||i?"horizontal"===e&&i?{scale:t===$e?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:t===$e?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(t,e){if(this._useHandle){var i=this._shapes,n=this.visualMapModel,r=i.handleThumbs,a=i.handleLabels;_([0,1],function(o){var s=r[o];s[Le]("fill",e.handlesColor[o]),s[re][1]=t[o];var l=u[k](i.handleLabelPoints[o],u.getTransform(s,this.group));a[o][Le]({x:l[0],y:l[1],text:n.formatValueText(this._dataInterval[o]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===o?$e:"top":"left",i.barGroup)})},this)}},_showIndicator:function(t,e,i,r){var a=this.visualMapModel,o=a[K](),s=a.itemSize,l=[0,s[1]],c=g(t,o,l,!0),h=this._shapes,d=h.indicator;if(d){d[re][1]=c,d.attr("invisible",!1),d[S]("points",n(!!i,r,c,s[1]));var f={convertOpacityToAlpha:!0},p=this.getControllerVisual(t,"color",f);d[Le]("fill",p);var v=u[k](h.indicatorLabelPoint,u.getTransform(d,this.group)),m=h.indicatorLabel;m.attr("invisible",!1);var y=this._applyTransform("left",h.barGroup),_=this._orient;m[Le]({text:(i?i:"")+a.formatValueText(e),textVerticalAlign:"horizontal"===_?y:oe,textAlign:"horizontal"===_?ae:y,x:v[0],y:v[1]})}},_enableHoverLinkToSeries:function(){var t=this;this._shapes.barGroup.on("mousemove",function(e){if(t._hovering=!0,!t._dragging){var i=t.visualMapModel.itemSize,n=t._applyTransform([e.offsetX,e.offsetY],t._shapes.barGroup,!0,!0);n[1]=x(b(0,n[1]),i[1]),t._doHoverLinkToSeries(n[1],0<=n[0]&&n[0]<=i[0])}}).on(ze,function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel[Y].hoverLink?(t.on(Re,this._hoverLinkFromSeriesMouseOver,this),t.on(ze,this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i[Y].hoverLink){var a=[0,n[1]],o=i[K]();t=x(b(a[0],t),a[1]);var l=r(i,o,a),u=[t-l,t+l],c=g(t,a,o,!0),h=[g(u[0],a,o,!0),g(u[1],a,o,!0)];u[0]<a[0]&&(h[0]=-1/0),u[1]>a[1]&&(h[1]=1/0),e&&(h[0]===-1/0?this._showIndicator(c,h[1],"< ",l):1/0===h[1]?this._showIndicator(c,h[0],"> ",l):this._showIndicator(c,c,"≈ ",l));var d=this._hoverLinkDataIndices,f=[];(e||s(i))&&(f=this._hoverLinkDataIndices=i.findTargetDataIndices(h));var p=m.compressBatches(d,f);this._dispatchHighDown("downplay",p[0]),this._dispatchHighDown("highlight",p[1])}},_hoverLinkFromSeriesMouseOver:function(t){var e=t[De];if(e&&null!=e[ke]){var i=e.dataModel||this[W].getSeriesByIndex(e[Ie]),n=i[qe](e.dataType),r=n.getDimension(this.visualMapModel.getDataDimension(n)),a=n.get(r,e[ke],!0);this._showIndicator(a,a)}},_hideIndicator:function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",t),t[Ne]=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var t=this.api.getZr();t.off(Re,this._hoverLinkFromSeriesMouseOver),t.off(ze,this._hideIndicator)},_applyTransform:function(t,e,i,n){var r=u.getTransform(e,n?null:this.group);return u[c[Se](t)?k:"transformDirection"](t,r,i)},_dispatchHighDown:function(t,e){e&&e[Ne]&&this.api[Ge]({type:t,batch:e})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});return T}),e("echarts/coord/cartesian/AxisModel",[fi,"../../model/Component",hi,"../axisModelCreator","../axisModelCommonMixin"],function(t){function e(t,e){return e.type||(e.data?v:"value")}var i=t("../../model/Component"),n=t(hi),r=t("../axisModelCreator"),a=i[He]({type:"cartesian2dAxis",axis:null,init:function(){a.superApply(this,"init",arguments),this._resetRange()},mergeOption:function(){a.superApply(this,j,arguments),this._resetRange()},restoreData:function(){a.superApply(this,"restoreData",arguments),this._resetRange()},setRange:function(t,e){this[Y].rangeStart=t,this[Y].rangeEnd=e},getMin:function(){var t=this[Y];return null!=t.rangeStart?t.rangeStart:t.min},getMax:function(){var t=this[Y];return null!=t.rangeEnd?t.rangeEnd:t.max},getNeedCrossZero:function(){var t=this[Y];return null!=t.rangeStart||null!=t.rangeEnd?!1:!t.scale},_resetRange:function(){this[Y].rangeStart=this[Y].rangeEnd=null}});n.merge(a[si],t("../axisModelCommonMixin"));var o={gridIndex:0};return r("x",a,e,o),r("y",a,e,o),a}),e("echarts/coord/geo/Region",[fi,"zrender/contain/polygon",z,"zrender/core/bbox",ui],function(t){function e(t,e,i){if(this.name=t,this.contours=e,i)i=[i[0],i[1]];else{var n=this[le]();i=[n.x+n.width/2,n.y+n[Ye]/2]}this[ae]=i}var i=t("zrender/contain/polygon"),n=t(z),r=t("zrender/core/bbox"),a=t(ui);return e[si]={constructor:e,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],o=[-e,-e],s=[],l=[],u=this.contours,c=0;c<u[Ne];c++)r.fromPoints(u[c],s,l),a.min(i,i,s),a.max(o,o,l);return 0===c&&(i[0]=i[1]=o[0]=o[1]=0),this._rect=new n(i[0],i[1],o[0]-i[0],o[1]-i[1])},contain:function(t){var e=this[le](),n=this.contours;if(e[ee](t[0],t[1]))for(var r=0,a=n[Ne];a>r;r++)if(i[ee](n[r],t[0],t[1]))return!0;return!1},transformTo:function(t,e,i,r){var o=this[le](),s=o.width/o[Ye];i?r||(r=i/s):i=s*r;for(var l=new n(t,e,i,r),u=o.calculateTransform(l),c=this.contours,h=0;h<c[Ne];h++)for(var d=0;d<c[h][Ne];d++)a[k](c[h][d],c[h][d],u);o=this._rect,o.copy(l),this[ae]=[o.x+o.width/2,o.y+o[Ye]/2]}},e}),e("zrender/animation/Clip",[fi,"./easing"],function(t){function e(t){this._target=t[De],this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null==t.loop?!1:t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}var i=t("./easing");return e[si]={constructor:e,step:function(t){this._initialized||(this._startTime=(new Date).getTime()+this._delay,this._initialized=!0);var e=(t-this._startTime)/this._life;if(!(0>e)){e=Math.min(e,1);var n=this.easing,r=typeof n==oi?i[n]:n,a=typeof r===Me?r(e):e;return this.fire("frame",a),1==e?this.loop?(this.restart(),"restart"):(this._needsRemove=!0,"destroy"):null}},restart:function(){var t=(new Date).getTime(),e=(t-this._startTime)%this._life;this._startTime=(new Date).getTime()-e+this.gap,this._needsRemove=!1},fire:function(t,e){t="on"+t,this[t]&&this[t](this._target,e)}},e}),e("echarts/coord/axisModelCreator",[fi,"./axisDefault",hi,"../model/Component","../util/layout"],function(t){var e=t("./axisDefault"),i=t(hi),n=t("../model/Component"),r=t("../util/layout"),a=["value",v,"time","log"];return function(t,o,s,l){i.each(a,function(n){o[He]({type:t+"Axis."+n,mergeDefaultAndTheme:function(e,a){var o=this.layoutMode,l=o?r.getLayoutParams(e):{},u=a.getTheme();i.merge(e,u.get(n+"Axis")),i.merge(e,this.getDefaultOption()),e.type=s(t,e),o&&r.mergeLayoutParam(e,l,o)},defaultOption:i.mergeAll([{},e[n+"Axis"],l],!0)})}),n.registerSubTypeDefaulter(t+"Axis",i.curry(s,t))}}),e("echarts/coord/axisModelCommonMixin",[fi,hi,"./axisHelper"],function(t){function e(t){return r[We](t)&&null!=t.value?t.value:t}function i(){return this.get("type")===v&&r.map(this.get("data"),e)}function n(){return a.getFormattedLabels(this.axis,this.get("axisLabel.formatter"))}var r=t(hi),a=t("./axisHelper");return{getFormattedLabels:n,getCategories:i}}),e("zrender/contain/polygon",[fi,"./windingLine"],function(t){function e(t,e){return Math.abs(t-e)<r}function i(t,i,r){var a=0,o=t[0];if(!o)return!1;for(var s=1;s<t[Ne];s++){var l=t[s];a+=n(o[0],o[1],l[0],l[1],i,r),o=l}var u=t[0];return e(o[0],u[0])&&e(o[1],u[1])||(a+=n(o[0],o[1],u[0],u[1],i,r)),0!==a}var n=t("./windingLine"),r=1e-8;return{contain:i}}),e("zrender/animation/easing",[],function(){var t={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)))},elasticOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/n)+1)},elasticInOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(e){return 1-t.bounceOut(1-e)},bounceOut:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(e){return.5>e?.5*t.bounceIn(2*e):.5*t.bounceOut(2*e-1)+.5}};return t}),e("echarts/coord/axisDefault",[fi,hi],function(t){var e=t(hi),i={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncateLength:null,nameTruncateEllipsis:"...",nameTextStyle:{},nameGap:15,silent:!0,axisLine:{show:!0,onZero:!0,lineStyle:{color:"#333",width:1,type:"solid"}},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,margin:8,textStyle:{fontSize:12}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},n=e.merge({boundaryGap:!0,splitLine:{show:!1},axisTick:{interval:"auto"},axisLabel:{interval:"auto"}},i),r=e.merge({boundaryGap:[0,0],splitNumber:5},i),a=e[Ze]({scale:!0,min:"dataMin",max:"dataMax"},r),o=e[Ze]({},r);return o.scale=!0,{categoryAxis:n,valueAxis:r,timeAxis:a,logAxis:o}}),e("zrender/contain/windingLine",[],function(){return function(t,e,i,n,r,a){if(a>e&&a>n||e>a&&n>a)return 0;if(n===e)return 0;var o=e>n?1:-1,s=(a-e)/(n-e);(1===s||0===s)&&(o=e>n?.5:-.5);var l=s*(i-t)+t;return l>r?o:0}}),e("zrender/contain/line",[],function(){return{containStroke:function(t,e,i,n,r,a,o){if(0===r)return!1;var s=r,l=0,u=t;if(o>e+s&&o>n+s||e-s>o&&n-s>o||a>t+s&&a>i+s||t-s>a&&i-s>a)return!1;if(t===i)return Math.abs(a-t)<=s/2;l=(e-n)/(t-i),u=(t*n-i*e)/(t-i);var c=l*a-o+u,h=c*c/(l*l+1);return s/2*s/2>=h}}}),e("zrender/contain/cubic",[fi,"../core/curve"],function(t){var e=t("../core/curve");return{containStroke:function(t,i,n,r,a,o,s,l,u,c,h){if(0===u)return!1;var d=u;if(h>i+d&&h>r+d&&h>o+d&&h>l+d||i-d>h&&r-d>h&&o-d>h&&l-d>h||c>t+d&&c>n+d&&c>a+d&&c>s+d||t-d>c&&n-d>c&&a-d>c&&s-d>c)return!1;var f=e.cubicProjectPoint(t,i,n,r,a,o,s,l,c,h,null);return d/2>=f}}}),e("zrender/contain/quadratic",[fi,"../core/curve"],function(t){var e=t("../core/curve");return{containStroke:function(t,i,n,r,a,o,s,l,u){if(0===s)return!1;var c=s;if(u>i+c&&u>r+c&&u>o+c||i-c>u&&r-c>u&&o-c>u||l>t+c&&l>n+c&&l>a+c||t-c>l&&n-c>l&&a-c>l)return!1;var h=e.quadraticProjectPoint(t,i,n,r,a,o,l,u,null);return c/2>=h}}}),e("zrender/contain/arc",[fi,"./util"],function(t){var e=t("./util").normalizeRadian,i=2*Math.PI;return{containStroke:function(t,n,r,a,o,s,l,u,c){if(0===l)return!1;var h=l;u-=t,c-=n;var d=Math.sqrt(u*u+c*c);if(d-h>r||r>d+h)return!1;if(Math.abs(a-o)%i<1e-4)return!0;if(s){var f=a;a=e(o),o=e(f)}else a=e(a),o=e(o);a>o&&(o+=i);var p=Math.atan2(c,u);return 0>p&&(p+=i),p>=a&&o>=p||p+i>=a&&o>=p+i}}}),e("zrender/contain/util",[fi],function(){var t=2*Math.PI;return{normalizeRadian:function(e){return e%=t,0>e&&(e+=t),e}}}),e("zrender/graphic/helper/roundRect",[fi],function(){return{buildPath:function(t,e){var i,n,r,a,o=e.x,s=e.y,l=e.width,u=e[Ye],c=e.r;0>l&&(o+=l,l=-l),0>u&&(s+=u,u=-u),typeof c===_e?i=n=r=a=c:c instanceof Array?1===c[Ne]?i=n=r=a=c[0]:2===c[Ne]?(i=r=c[0],n=a=c[1]):3===c[Ne]?(i=c[0],n=a=c[1],r=c[2]):(i=c[0],n=c[1],r=c[2],a=c[3]):i=n=r=a=0;var h;i+n>l&&(h=i+n,i*=l/h,n*=l/h),r+a>l&&(h=r+a,r*=l/h,a*=l/h),n+r>u&&(h=n+r,n*=u/h,r*=u/h),i+a>u&&(h=i+a,i*=u/h,a*=u/h),t.moveTo(o+i,s),t.lineTo(o+l-n,s),0!==n&&t.quadraticCurveTo(o+l,s,o+l,s+n),t.lineTo(o+l,s+u-r),0!==r&&t.quadraticCurveTo(o+l,s+u,o+l-r,s+u),t.lineTo(o+a,s+u),0!==a&&t.quadraticCurveTo(o,s+u,o,s+u-a),t.lineTo(o,s+i),0!==i&&t.quadraticCurveTo(o,s,o+i,s)}}}),e("zrender/core/LRU",[fi],function(){var t=function(){this.head=null,this.tail=null,this._len=0},e=t[si];e.insert=function(t){var e=new i(t);return this.insertEntry(e),e},e.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,this.tail=t):this.head=this.tail=t,this._len++},e[Fe]=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},e.len=function(){return this._len};var i=function(t){this.value=t,this.next,this.prev},n=function(e){this._list=new t,this._map={},this._maxSize=e||10},r=n[si];return r.put=function(t,e){var i=this._list,n=this._map;if(null==n[t]){var r=i.len();if(r>=this._maxSize&&r>0){var a=i.head;i[Fe](a),delete n[a.key]}var o=i.insert(e);o.key=t,n[t]=o}},r.get=function(t){var e=this._map[t],i=this._list;return null!=e?(e!==i.tail&&(i[Fe](e),i.insertEntry(e)),e.value):void 0},r.clear=function(){this._list.clear(),this._map={}},n}),e("echarts/chart/helper/createListFromArray",[fi,"../../data/List","../../data/helper/completeDimensions",hi,o,"../../CoordinateSystem"],function(t){function e(t){for(var e=0;e<t[Ne]&&null==t[e];)e++;return t[e]}function i(t){var i=e(t);return null!=i&&!h[Se](p(i))}function n(t,e,n){t=t||[];var r=e.get(fe),a=g[r],o=f.get(r),u=a&&a(t,e,n),v=u&&u[w];v||(v=o&&o[w]||["x","y"],v=c(v,t,v[X](["value"])));var y=u?u.categoryIndex:-1,_=new l(v,e),x=s(u,t),b={},M=y>=0&&i(t)?function(t,e,i,n){return d.isDataItemOption(t)&&(_.hasItemOption=!0),n===y?i:m(p(t),v[n])}:function(t,e,i,n){var r=p(t),a=m(r&&r[n],v[n]);d.isDataItemOption(t)&&(_.hasItemOption=!0);var o=u&&u.categoryAxesModels;return o&&o[e]&&typeof a===oi&&(b[e]=b[e]||o[e].getCategories(),a=h[ge](b[e],a),0>a&&!isNaN(a)&&(a=+a)),a};return _.hasItemOption=!1,_.initData(t,x,M),_}function r(t){return t!==v&&"time"!==t}function a(t){return t===v?b:"time"===t?"time":"float"}function s(t,e){var i,n=[],r=t&&t[w][t.categoryIndex];if(r&&(i=t.categoryAxesModels[r.name]),i){var a=i.getCategories();if(a){var o=e[Ne];if(h[Se](e[0])&&e[0][Ne]>1){n=[];for(var s=0;o>s;s++)n[s]=a[e[s][t.categoryIndex||0]]}else n=a.slice(0)}}return n}var l=t("../../data/List"),c=t("../../data/helper/completeDimensions"),h=t(hi),d=t(o),f=t("../../CoordinateSystem"),p=d.getDataItemValue,m=d.converDataValue,g={cartesian2d:function(t,e,i){var n=i[U]("xAxis",e.get("xAxisIndex")),o=i[U]("yAxis",e.get("yAxisIndex")),s=n.get("type"),l=o.get("type"),u=[{name:"x",type:a(s),stackable:r(s)},{name:"y",type:a(l),stackable:r(l)}],h=s===v,d=l===v;c(u,t,["x","y","z"]);var f={};return h&&(f.x=n),d&&(f.y=o),{dimensions:u,categoryIndex:h?0:d?1:-1,categoryAxesModels:f}},polar:function(t,e,i){var n=e.get("polarIndex")||0,o=function(t){return t.get("polarIndex")===n},s=i.findComponents({mainType:"angleAxis",filter:o})[0],l=i.findComponents({mainType:"radiusAxis",filter:o})[0],h=l.get("type"),d=s.get("type"),f=[{name:"radius",type:a(h),stackable:r(h)},{name:"angle",type:a(d),stackable:r(d)}],p=d===v,m=h===v;c(f,t,[u,"angle","value"]);var g={};return m&&(g[u]=l),p&&(g.angle=s),{dimensions:f,categoryIndex:p?1:m?0:-1,categoryAxesModels:g}},geo:function(t){return{dimensions:c([{name:"lng"},{name:"lat"}],t,["lng","lat","value"])}}};return n}),e("zrender/graphic/helper/poly",[fi,"./smoothSpline","./smoothBezier"],function(t){var e=t("./smoothSpline"),i=t("./smoothBezier");return{buildPath:function(t,n,r){var a=n.points,o=n.smooth;if(a&&a[Ne]>=2){if(o&&"spline"!==o){var s=i(a,o,r,n.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var l=a[Ne],u=0;(r?l:l-1)>u;u++){var c=s[2*u],h=s[2*u+1],d=a[(u+1)%l];t.bezierCurveTo(c[0],c[1],h[0],h[1],d[0],d[1])}}else{"spline"===o&&(a=e(a,r)),t.moveTo(a[0][0],a[0][1]);for(var u=1,f=a[Ne];f>u;u++)t.lineTo(a[u][0],a[u][1])}r&&t.closePath()}}}}),e("zrender/Handler",[fi,"./core/env","./core/event","./core/util","./mixin/Draggable","./core/GestureMgr","./mixin/Eventful"],function(t){function e(t,e,i){return{type:t,event:i,target:e,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta}}function i(t,e,i){var n=t._gestureMgr;"start"===i&&n.clear();var r=n.recognize(e,t.findHover(e.zrX,e.zrY,null),t.root);if("end"===i&&n.clear(),r){var a=r.type;e.gestureEvent=a,t._dispatchProxy(r[De],a,r.event)}}function n(t){function e(t,e){return function(){return e._touching?void 0:t.apply(e,arguments)}}for(var i=m[X](g),n=0;n<i[Ne];n++){var r=i[n];t._handlers[r]=h.bind(w[r],t)}for(var n=0;n<v[Ne];n++){var r=v[n];t._handlers[r]=e(w[r],t)}}function r(t,e,i){if(t[t.rectHover?"rectContain":ee](e,i)){for(var n=t;n;){if(n.silent||n.clipPath&&!n.clipPath[ee](e,i))return!1;n=n[C]}return!0}return!1}function a(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function o(){return!1}function s(){return u.touchEventsSupported}function l(t){return"mousewheel"===t&&u.browser.firefox?"DOMMouseScroll":t}var u=t("./core/env"),c=t("./core/event"),h=t("./core/util"),d=t("./mixin/Draggable"),f=t("./core/GestureMgr"),p=t("./mixin/Eventful"),v=["click","dblclick","mousewheel",ze];!o()&&v.push("mouseup","mousedown","mousemove");var m=["touchstart","touchend","touchmove"],g=["pointerdown","pointerup","pointermove"],y=300,_=c.addEventListener,x=c.removeEventListener,b=c.normalizeEvent,w={mousemove:function(t){t=b(this.root,t);var e=t.zrX,i=t.zrY,n=this.findHover(e,i,null),r=this._hovered;this._hovered=n,this.root.style.cursor=n?n.cursor:"default",r&&n!==r&&r.__zr&&this._dispatchProxy(r,ze,t),this._dispatchProxy(n,"mousemove",t),n&&n!==r&&this._dispatchProxy(n,Re,t)},mouseout:function(t){t=b(this.root,t);var e=t.toElement||t.relatedTarget;if(e!=this.root)for(;e&&9!=e.nodeType;){if(e===this.root)return;e=e.parentNode}this._dispatchProxy(this._hovered,ze,t),this[Be]("globalout",{event:t})},touchstart:function(t){t=b(this.root,t),this._lastTouchMoment=new Date,i(this,t,"start"),w.mousemove.call(this,t),w.mousedown.call(this,t),a(this)},touchmove:function(t){t=b(this.root,t),i(this,t,"change"),w.mousemove.call(this,t),a(this)},touchend:function(t){t=b(this.root,t),i(this,t,"end"),w.mouseup.call(this,t),+new Date-this._lastTouchMoment<y&&w.click.call(this,t),a(this)}};h.each(["click","mousedown","mouseup","mousewheel","dblclick"],function(t){w[t]=function(e){e=b(this.root,e);var i=this.findHover(e.zrX,e.zrY,null);if("mousedown"===t)this._downel=i,this._upel=i;else if("mosueup"===t)this._upel=i;else if("click"===t&&this._downel!==this._upel)return;this._dispatchProxy(i,t,e)}});var M=function(t,e,i){function r(e,i){h.each(e,function(e){_(t,l(e),i._handlers[e])},i)}p.call(this),this.root=t,this[Ke]=e,this.painter=i,this._hovered,this._lastTouchMoment,this._lastX,this._lastY,this._gestureMgr=new f,this._handlers=[],this._touching=!1,this._touchTimer,n(this),o()?r(g,this):s()&&r(m,this),r(v,this),d.call(this)};return M[si]={constructor:M,resize:function(){this._hovered=null},dispatch:function(t,e){var i=this._handlers[t];i&&i.call(this,e)},dispose:function(){for(var t=this.root,e=v[X](m),i=0;i<e[Ne];i++){var n=e[i];x(t,l(n),this._handlers[n])}this.root=this[Ke]=this.painter=null},setCursorStyle:function(t){this.root.style.cursor=t||"default"},_dispatchProxy:function(t,i,n){for(var r="on"+i,a=e(i,t,n),o=t;o&&(o[r]&&(a.cancelBubble=o[r].call(o,a)),o[Be](i,a),o=o[C],!a.cancelBubble););a.cancelBubble||(this[Be](i,a),this.painter&&this.painter.eachOtherLayer(function(t){typeof t[r]==Me&&t[r].call(t,a),t[Be]&&t[Be](i,a)
}))},findHover:function(t,e,i){for(var n=this[Ke].getDisplayList(),a=n[Ne]-1;a>=0;a--)if(!n[a].silent&&n[a]!==i&&!n[a][Je]&&r(n[a],t,e))return n[a]}},h.mixin(M,p),h.mixin(M,d),M}),e("zrender/Storage",[fi,"./core/util","./core/env","./container/Group","./core/timsort"],function(t){function e(t,e){return t[Ce]===e[Ce]?t.z===e.z?t.z2-e.z2:t.z-e.z:t[Ce]-e[Ce]}var i=t("./core/util"),n=t("./core/env"),r=t("./container/Group"),a=t("./core/timsort"),o=function(){this._elements={},this._roots=[],this._displayList=[],this._displayListLen=0};return o[si]={constructor:o,traverse:function(t,e){for(var i=0;i<this._roots[Ne];i++)this._roots[i][Ae](t,e)},getDisplayList:function(t,e){return e=e||!1,t&&this.updateDisplayList(e),this._displayList},updateDisplayList:function(t){this._displayListLen=0;for(var i=this._roots,r=this._displayList,o=0,s=i[Ne];s>o;o++)this._updateAndAddDisplayable(i[o],null,t);r[Ne]=this._displayListLen,n[ei]&&a(r,e)},_updateAndAddDisplayable:function(t,e,i){if(!t[Je]||i){t.beforeUpdate(),t.__dirty&&t[Xe](),t.afterUpdate();var n=t.clipPath;if(n&&(n[C]=t,n.updateTransform(),e?(e=e.slice(),e.push(n)):e=[n]),t.isGroup){for(var r=t._children,a=0;a<r[Ne];a++){var o=r[a];t.__dirty&&(o.__dirty=!0),this._updateAndAddDisplayable(o,e,i)}t.__dirty=!1}else t.__clipPaths=e,this._displayList[this._displayListLen++]=t}},addRoot:function(t){this._elements[t.id]||(t instanceof r&&t.addChildrenToStorage(this),this.addToMap(t),this._roots.push(t))},delRoot:function(t){if(null==t){for(var e=0;e<this._roots[Ne];e++){var n=this._roots[e];n instanceof r&&n.delChildrenFromStorage(this)}return this._elements={},this._roots=[],this._displayList=[],void(this._displayListLen=0)}if(t instanceof Array)for(var e=0,a=t[Ne];a>e;e++)this.delRoot(t[e]);else{var o;o=typeof t==oi?this._elements[t]:t;var s=i[ge](this._roots,o);s>=0&&(this.delFromMap(o.id),this._roots[Oe](s,1),o instanceof r&&o.delChildrenFromStorage(this))}},addToMap:function(t){return t instanceof r&&(t.__storage=this),t.dirty(),this._elements[t.id]=t,this},get:function(t){return this._elements[t]},delFromMap:function(t){var e=this._elements,i=e[t];return i&&(delete e[t],i instanceof r&&(i.__storage=null)),this},dispose:function(){this._elements=this._renderList=this._roots=null},displayableSortFunc:e},o}),e("zrender/animation/Animation",[fi,i,"../core/event","./requestAnimationFrame","./Animator"],function(t){var e=t(i),n=t("../core/event").Dispatcher,r=t("./requestAnimationFrame"),a=t("./Animator"),o=function(t){t=t||{},this.stage=t.stage||{},this.onframe=t.onframe||function(){},this._clips=[],this._running=!1,this._time=0,n.call(this)};return o[si]={constructor:o,addClip:function(t){this._clips.push(t)},addAnimator:function(t){t[B]=this;for(var e=t.getClips(),i=0;i<e[Ne];i++)this.addClip(e[i])},removeClip:function(t){var i=e[ge](this._clips,t);i>=0&&this._clips[Oe](i,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;i<e[Ne];i++)this.removeClip(e[i]);t[B]=null},_update:function(){for(var t=(new Date).getTime(),e=t-this._time,i=this._clips,n=i[Ne],r=[],a=[],o=0;n>o;o++){var s=i[o],l=s.step(t);l&&(r.push(l),a.push(s))}for(var o=0;n>o;)i[o]._needsRemove?(i[o]=i[n-1],i.pop(),n--):o++;n=r[Ne];for(var o=0;n>o;o++)a[o].fire(r[o]);this._time=t,this.onframe(e),this[Be]("frame",e),this.stage[Xe]&&this.stage[Xe]()},start:function(){function t(){e._running&&(r(t),e._update())}var e=this;this._running=!0,this._time=(new Date).getTime(),r(t)},stop:function(){this._running=!1},clear:function(){this._clips=[]},animate:function(t,e){e=e||{};var i=new a(t,e.loop,e.getter,e.setter);return i}},e.mixin(o,n),o}),e("zrender/Painter",[fi,"./config","./core/util","./core/log","./core/BoundingRect","./core/timsort","./Layer","./animation/requestAnimationFrame","./graphic/Image"],function(t){function e(t){return parseInt(t,10)}function i(t){return t?t.isBuildin?!0:typeof t[ai]!==Me||typeof t.refresh!==Me?!1:!0:!1}function n(t){t.__unusedCount++}function a(t){1==t.__unusedCount&&t.clear()}function o(t,e,i){return y.copy(t[le]()),t[r]&&y[k](t[r]),_.width=e,_[Ye]=i,!y.intersect(_)}function s(t,e){if(t==e)return!1;if(!t||!e||t[Ne]!==e[Ne])return!0;for(var i=0;i<t[Ne];i++)if(t[i]!==e[i])return!0}function l(t,e){for(var i=0;i<t[Ne];i++){var n,a=t[i];a[r]&&(n=a[r],e[r](n[0],n[1],n[2],n[3],n[4],n[5]));var o=a.path;o.beginPath(e),a.buildPath(o,a.shape),e.clip(),a[r]&&(n=a.invTransform,e[r](n[0],n[1],n[2],n[3],n[4],n[5]))}}function u(t,e){var i=document[$]("div"),n=i.style;return n[re]="relative",n.overflow="hidden",n.width=t+"px",n[Ye]=e+"px",i}var c=t("./config"),h=t("./core/util"),d=t("./core/log"),f=t("./core/BoundingRect"),p=t("./core/timsort"),v=t("./Layer"),m=t("./animation/requestAnimationFrame"),g=5,y=new f(0,0,0,0),_=new f(0,0,0,0),x=function(t,e,i){var n=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();i=i||{},this.dpr=i.devicePixelRatio||c.devicePixelRatio,this._singleCanvas=n,this.root=t;var r=t.style;r&&(r["-webkit-tap-highlight-color"]="transparent",r["-webkit-user-select"]=r["user-select"]=r["-webkit-touch-callout"]="none",t.innerHTML=""),this[Ke]=e;var a=this._zlevelList=[],o=this._layers={};if(this._layerConfig={},n){var s=t.width,l=t[Ye];this._width=s,this._height=l;var h=new v(t,this,1);h.initContext(),o[0]=h,a.push(0)}else{this._width=this._getWidth(),this._height=this._getHeight();var d=this._domRoot=u(this._width,this._height);t.appendChild(d)}this.pathToImage=this._createPathToImage(),this._progressiveLayers=[],this._hoverlayer,this._hoverElements=[]};return x[si]={constructor:x,isSingleCanvas:function(){return this._singleCanvas},getViewportRoot:function(){return this._singleCanvas?this._layers[0].dom:this._domRoot},refresh:function(t){var e=this[Ke].getDisplayList(!0),i=this._zlevelList;this._paintList(e,t);for(var n=0;n<i[Ne];n++){var r=i[n],a=this._layers[r];!a.isBuildin&&a.refresh&&a.refresh()}return this.refreshHover(),this._progressiveLayers[Ne]&&this._startProgessive(),this},addHover:function(t,e){if(!t.__hoverMir){var i=new t.constructor({style:t.style,shape:t.shape});i.__from=t,t.__hoverMir=i,i[Le](e),this._hoverElements.push(i)}},removeHover:function(t){var e=t.__hoverMir,i=this._hoverElements,n=h[ge](i,e);n>=0&&i[Oe](n,1),t.__hoverMir=null},clearHover:function(){for(var t=this._hoverElements,e=0;e<t[Ne];e++){var i=t[e].__from;i&&(i.__hoverMir=null)}t[Ne]=0},refreshHover:function(){var t=this._hoverElements,e=t[Ne],i=this._hoverlayer;if(i&&i.clear(),e){p(t,this[Ke].displayableSortFunc),i||(i=this._hoverlayer=this.getLayer(1e5));var n={};i.ctx.save();for(var a=0;e>a;){var o=t[a],s=o.__from;s&&s.__zr?(a++,s.invisible||(o[r]=s[r],o.invTransform=s.invTransform,o.__clipPaths=s.__clipPaths,this._doPaintEl(o,i,!0,n))):(t[Oe](a,1),s.__hoverMir=null,e--)}i.ctx.restore()}},_startProgessive:function(){function t(){i===e._progressiveToken&&e[Ke]&&(e._doPaintList(e[Ke].getDisplayList()),e._furtherProgressive?(e._progress++,m(t)):e._progressiveToken=-1)}var e=this;if(e._furtherProgressive){var i=e._progressiveToken=+new Date;e._progress++,m(t)}},_clearProgressive:function(){this._progressiveToken=-1,this._progress=0,h.each(this._progressiveLayers,function(t){t.__dirty&&t.clear()})},_paintList:function(t,e){null==e&&(e=!1),this._updateLayerStatus(t),this._clearProgressive(),this.eachBuildinLayer(n),this._doPaintList(t,e),this.eachBuildinLayer(a)},_doPaintList:function(t,e){function i(t){a.save(),a.globalAlpha=1,a.shadowBlur=0,n.__dirty=!0,a.drawImage(t.dom,0,0,c,f),a.restore(),n.ctx.restore()}for(var n,r,a,o,s,l,u=0,c=this._width,f=this._height,p=this._progress,v=0,m=t[Ne];m>v;v++){var y=t[v],_=this._singleCanvas?0:y[Ce],x=y.__frame;if(0>x&&s&&(i(s),s=null),r!==_&&(a&&a.restore(),o={},r=_,n=this.getLayer(r),n.isBuildin||d("ZLevel "+r+" has been used by unkown layer "+n.id),a=n.ctx,a.save(),n.__unusedCount=0,(n.__dirty||e)&&n.clear()),n.__dirty||e){if(x>=0){if(!s){if(s=this._progressiveLayers[Math.min(u++,g-1)],s.ctx.save(),s.renderScope={},s&&s.__progress>s.__maxProgress){v=s.__nextIdxNotProg-1;continue}l=s.__progress,s.__dirty||(p=l),s.__progress=p+1}x===p&&this._doPaintEl(y,s,!0,s.renderScope)}else this._doPaintEl(y,n,e,o);y.__dirty=!1}}s&&i(s),a&&a.restore(),this._furtherProgressive=!1,h.each(this._progressiveLayers,function(t){t.__maxProgress>=t.__progress&&(this._furtherProgressive=!0)},this)},_doPaintEl:function(t,e,i,n){var r=e.ctx;if((e.__dirty||i)&&!t.invisible&&0!==t.style[ne]&&t.scale[0]&&t.scale[1]&&(!t.culling||!o(t,this._width,this._height))){var a=t.__clipPaths;(n.prevClipLayer!==e||s(a,n.prevElClipPaths))&&(n.prevElClipPaths&&(n.prevClipLayer.ctx.restore(),n.prevClipLayer=n.prevElClipPaths=null,n.prevEl=null),a&&(r.save(),l(a,r),n.prevClipLayer=e,n.prevElClipPaths=a)),t.beforeBrush&&t.beforeBrush(r),t.brush(r,n.prevEl||null),n.prevEl=t,t.afterBrush&&t.afterBrush(r)}},getLayer:function(t){if(this._singleCanvas)return this._layers[0];var e=this._layers[t];return e||(e=new v("zr_"+t,this,this.dpr),e.isBuildin=!0,this._layerConfig[t]&&h.merge(e,this._layerConfig[t],!0),this.insertLayer(t,e),e.initContext()),e},insertLayer:function(t,e){var n=this._layers,r=this._zlevelList,a=r[Ne],o=null,s=-1,l=this._domRoot;if(n[t])return void d("ZLevel "+t+" has been used already");if(!i(e))return void d("Layer of zlevel "+t+" is not valid");if(a>0&&t>r[0]){for(s=0;a-1>s&&!(r[s]<t&&r[s+1]>t);s++);o=n[r[s]]}if(r[Oe](s+1,0,t),o){var u=o.dom;u.nextSibling?l.insertBefore(e.dom,u.nextSibling):l.appendChild(e.dom)}else l.firstChild?l.insertBefore(e.dom,l.firstChild):l.appendChild(e.dom);n[t]=e},eachLayer:function(t,e){var i,n,r=this._zlevelList;for(n=0;n<r[Ne];n++)i=r[n],t.call(e,this._layers[i],i)},eachBuildinLayer:function(t,e){var i,n,r,a=this._zlevelList;for(r=0;r<a[Ne];r++)n=a[r],i=this._layers[n],i.isBuildin&&t.call(e,i,n)},eachOtherLayer:function(t,e){var i,n,r,a=this._zlevelList;for(r=0;r<a[Ne];r++)n=a[r],i=this._layers[n],i.isBuildin||t.call(e,i,n)},getLayers:function(){return this._layers},_updateLayerStatus:function(t){var e=this._layers,i=this._progressiveLayers,n={},r={};this.eachBuildinLayer(function(t,e){n[e]=t.elCount,t.elCount=0,t.__dirty=!1}),h.each(i,function(t,e){r[e]=t.elCount,t.elCount=0,t.__dirty=!1});for(var a,o,s=0,l=0,u=0,c=t[Ne];c>u;u++){var d=t[u],f=this._singleCanvas?0:d[Ce],p=e[f],m=d.progressive;if(p&&(p.elCount++,p.__dirty=p.__dirty||d.__dirty),m>=0){o!==m&&(o=m,l++);var y=d.__frame=l-1;if(!a){var _=Math.min(s,g-1);a=i[_],a||(a=i[_]=new v("progressive",this,this.dpr),a.initContext()),a.__maxProgress=0}a.__dirty=a.__dirty||d.__dirty,a.elCount++,a.__maxProgress=Math.max(a.__maxProgress,y),a.__maxProgress>=a.__progress&&(p.__dirty=!0)}else d.__frame=-1,a&&(a.__nextIdxNotProg=u,s++,a=null)}a&&(s++,a.__nextIdxNotProg=u),this.eachBuildinLayer(function(t,e){n[e]!==t.elCount&&(t.__dirty=!0)}),i[Ne]=Math.min(s,g),h.each(i,function(t,e){r[e]!==t.elCount&&(d.__dirty=!0),t.__dirty&&(t.__progress=0)})},clear:function(){return this.eachBuildinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?h.merge(i[t],e,!0):i[t]=e;var n=this._layers[t];n&&h.merge(n,i[t],!0)}},delLayer:function(t){var e=this._layers,i=this._zlevelList,n=e[t];n&&(n.dom.parentNode.removeChild(n.dom),delete e[t],i[Oe](h[ge](i,t),1))},resize:function(t,e){var i=this._domRoot;if(i.style.display="none",t=t||this._getWidth(),e=e||this._getHeight(),i.style.display="",this._width!=t||e!=this._height){i.style.width=t+"px",i.style[Ye]=e+"px";for(var n in this._layers)this._layers[n][ai](t,e);this.refresh(!0)}return this._width=t,this._height=e,this},clearLayer:function(t){var e=this._layers[t];e&&e.clear()},dispose:function(){this.root.innerHTML="",this.root=this[Ke]=this._domRoot=this._layers=null},getRenderedCanvas:function(t){if(t=t||{},this._singleCanvas)return this._layers[0].dom;var e=new v("image",this,t.pixelRatio||this.dpr);e.initContext(),e.clearColor=t[ti],e.clear();for(var i=this[Ke].getDisplayList(!0),n={},r=0;r<i[Ne];r++){var a=i[r];this._doPaintEl(a,e,!0,n)}return e.dom},getWidth:function(){return this._width},getHeight:function(){return this._height},_getWidth:function(){var t=this.root,i=document.defaultView.getComputedStyle(t);return(t.clientWidth||e(i.width)||e(t.style.width))-(e(i.paddingLeft)||0)-(e(i.paddingRight)||0)|0},_getHeight:function(){var t=this.root,i=document.defaultView.getComputedStyle(t);return(t.clientHeight||e(i[Ye])||e(t.style[Ye]))-(e(i.paddingTop)||0)-(e(i.paddingBottom)||0)|0},_pathToImage:function(e,i,n,r,a){var o=document[$]("canvas"),s=o[J]("2d");o.width=n*a,o[Ye]=r*a,s.clearRect(0,0,n*a,r*a);var l={position:i[re],rotation:i[T],scale:i.scale};i[re]=[0,0,0],i[T]=0,i.scale=[1,1],i&&i.brush(s);var u=t("./graphic/Image"),c=new u({id:e,style:{x:0,y:0,image:o}});return null!=l[re]&&(c[re]=i[re]=l[re]),null!=l[T]&&(c[T]=i[T]=l[T]),null!=l.scale&&(c.scale=i.scale=l.scale),c},_createPathToImage:function(){var t=this;return function(e,i,n,r){return t._pathToImage(e,i,n,r,t.dpr)}}},x}),e("echarts/data/helper/completeDimensions",[fi,hi],function(t){function e(t,e,a,o){if(!e)return t;var s=i(e[0]),l=n[Se](s)&&s[Ne]||1;a=a||[],o=o||"extra";for(var u=0;l>u;u++)if(!t[u]){var c=a[u]||o+(u-a[Ne]);t[u]=r(e,u)?{type:"ordinal",name:c}:c}return t}function i(t){return n[Se](t)?t:n[We](t)?t.value:t}var n=t(hi),r=e.guessOrdinal=function(t,e){for(var r=0,a=t[Ne];a>r;r++){var o=i(t[r]);if(!n[Se](o))return!1;var o=o[e];if(null!=o&&isFinite(o))return!1;if(n.isString(o)&&"-"!==o)return!0}return!1};return e}),e("echarts/data/DataDiffer",[fi],function(){function t(t){return t}function e(e,i,n,r){this._old=e,this._new=i,this._oldKeyGetter=n||t,this._newKeyGetter=r||t}function i(t,e,i){for(var n=0;n<t[Ne];n++){var r=i(t[n],n),a=e[r];null==a?e[r]=n:(a[Ne]||(e[r]=a=[a]),a.push(n))}}return e[si]={constructor:e,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t,e=this._old,n=this._new,r=this._oldKeyGetter,a=this._newKeyGetter,o={},s={};for(i(e,o,r),i(n,s,a),t=0;t<e[Ne];t++){var l=r(e[t],t),u=s[l];if(null!=u){var c=u[Ne];c?(1===c&&(s[l]=null),u=u.unshift()):s[l]=null,this._update&&this._update(u,t)}else this._remove&&this._remove(t)}for(var l in s)if(s.hasOwnProperty(l)){var u=s[l];if(null==u)continue;if(u[Ne])for(var t=0,c=u[Ne];c>t;t++)this._add&&this._add(u[t]);else this._add&&this._add(u)}}},e}),e("zrender/graphic/helper/smoothSpline",[fi,"../../core/vector"],function(t){function e(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}var i=t("../../core/vector");return function(t,n){for(var r=t[Ne],a=[],o=0,s=1;r>s;s++)o+=i.distance(t[s-1],t[s]);var l=o/2;l=r>l?r:l;for(var s=0;l>s;s++){var u,c,h,d=s/(l-1)*(n?r:r-1),f=Math.floor(d),p=d-f,v=t[f%r];n?(u=t[(f-1+r)%r],c=t[(f+1)%r],h=t[(f+2)%r]):(u=t[0===f?f:f-1],c=t[f>r-2?r-1:f+1],h=t[f>r-3?r-1:f+2]);var m=p*p,g=p*m;a.push([e(u[0],v[0],c[0],h[0],p,m,g),e(u[1],v[1],c[1],h[1],p,m,g)])}return a}}),e("zrender/graphic/helper/smoothBezier",[fi,"../../core/vector"],function(t){var e=t("../../core/vector"),i=e.min,n=e.max,r=e.scale,a=e.distance,o=e.add;return function(t,s,l,u){var c,h,d,f,p=[],v=[],m=[],g=[];if(u){d=[1/0,1/0],f=[-1/0,-1/0];for(var y=0,_=t[Ne];_>y;y++)i(d,d,t[y]),n(f,f,t[y]);i(d,d,u[0]),n(f,f,u[1])}for(var y=0,_=t[Ne];_>y;y++){var x=t[y];if(l)c=t[y?y-1:_-1],h=t[(y+1)%_];else{if(0===y||y===_-1){p.push(e.clone(t[y]));continue}c=t[y-1],h=t[y+1]}e.sub(v,h,c),r(v,v,s);var b=a(x,c),w=a(x,h),M=b+w;0!==M&&(b/=M,w/=M),r(m,v,-b),r(g,v,w);var S=o([],x,m),T=o([],x,g);u&&(n(S,S,d),i(S,S,f),n(T,T,d),i(T,T,f)),p.push(S),p.push(T)}return l&&p.push(p.shift()),p}}),e("zrender/core/event",[fi,"../mixin/Eventful"],function(t){function e(t){return t.getBoundingClientRect?t.getBoundingClientRect():{left:0,top:0}}function i(t,i,n){var r=e(t);return n=n||{},n.zrX=i.clientX-r.left,n.zrY=i.clientY-r.top,n}function n(t,e){if(e=e||window.event,null!=e.zrX)return e;var n=e.type,r=n&&n[ge]("touch")>=0;if(r){var a="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];a&&i(t,a,e)}else i(t,e,e),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;return e}function r(t,e,i){s?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function a(t,e,i){s?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}var o=t("../mixin/Eventful"),s=typeof window!==Q&&!!window.addEventListener,l=s?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};return{clientToLocal:i,normalizeEvent:n,addEventListener:r,removeEventListener:a,stop:l,Dispatcher:o}}),e("zrender/mixin/Draggable",[fi],function(){function t(){this.on("mousedown",this._dragStart,this),this.on("mousemove",this._drag,this),this.on("mouseup",this._dragEnd,this),this.on("globalout",this._dragEnd,this)}return t[si]={constructor:t,_dragStart:function(t){var e=t[De];e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this._dispatchProxy(e,"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,r=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(r,a,t),this._dispatchProxy(e,"drag",t.event);var o=this.findHover(i,n,e),s=this._dropTarget;this._dropTarget=o,e!==o&&(s&&o!==s&&this._dispatchProxy(s,"dragleave",t.event),o&&o!==s&&this._dispatchProxy(o,"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this._dispatchProxy(e,"dragend",t.event),this._dropTarget&&this._dispatchProxy(this._dropTarget,"drop",t.event),this._draggingTarget=null,this._dropTarget=null}},t}),e("zrender/core/GestureMgr",[fi,"./event"],function(t){function e(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}function i(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}var n=t("./event"),r=function(){this._track=[]};r[si]={constructor:r,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track[Ne]=0,this},_doTrack:function(t,e,i){var r=t.touches;if(r){for(var a={points:[],touches:[],target:e,event:t},o=0,s=r[Ne];s>o;o++){var l=r[o],u=n.clientToLocal(i,l);a.points.push([u.zrX,u.zrY]),a.touches.push(l)}this._track.push(a)}},_recognize:function(t){for(var e in a)if(a.hasOwnProperty(e)){var i=a[e](this._track,t);if(i)return i}}};var a={pinch:function(t,n){var r=t[Ne];if(r){var a=(t[r-1]||{}).points,o=(t[r-2]||{}).points||a;if(o&&o[Ne]>1&&a&&a[Ne]>1){var s=e(a)/e(o);!isFinite(s)&&(s=1),n.pinchScale=s;var l=i(a);return n.pinchX=l[0],n.pinchY=l[1],{type:"pinch",target:t[0][De],event:n}}}}};return r}),e("echarts/chart/bar/barItemStyle",[fi,"../../model/mixin/makeStyleMapper"],function(t){var e=t("../../model/mixin/makeStyleMapper")([["fill","color"],[P,"borderColor"],[I,"borderWidth"],[P,"barBorderColor"],[I,"barBorderWidth"],[ne],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]);return{getBarItemStyle:function(t){var i=e.call(this,t);if(this.getBorderLineDash){var n=this.getBorderLineDash();n&&(i.lineDash=n)}return i}}}),e("echarts/component/axis/AxisView",[fi,hi,d,"./AxisBuilder",h],function(t){function e(t,e){function i(t){var e=n[p](t);return e.toGlobalCoord(e[c](0))}var n=t[fe],r=e.axis,a={},o=r[re],s=r.onZero?"onZero":o,l=r.dim,u=n[pe](),h=[u.x,u.x+u.width,u.y,u.y+u[Ye]],d={x:{top:h[2],bottom:h[3]},y:{left:h[0],right:h[1]}};d.x.onZero=Math.max(Math.min(i("y"),d.x[$e]),d.x.top),d.y.onZero=Math.max(Math.min(i("x"),d.y.right),d.y.left),a[re]=["y"===l?d.y[s]:h[0],"x"===l?d.x[s]:h[3]],a[T]=Math.PI/2*("x"===l?0:1);var f={top:-1,bottom:1,left:-1,right:1};a.labelDirection=a.tickDirection=a.nameDirection=f[o],r.onZero&&(a.labelOffset=d[l][o]-d[l].onZero),e[ri]("axisTick").get(L)&&(a.tickDirection=-a.tickDirection),e[ri]("axisLabel").get(L)&&(a.labelDirection=-a.labelDirection);var v=e[ri]("axisLabel").get("rotate");return a.labelRotation="top"===s?-v:v,a.labelInterval=r.getLabelInterval(),a.z2=1,a}var i=t(hi),n=t(d),r=t("./AxisBuilder"),a=r.ifIgnoreOnTick,o=r.getInterval,s=["axisLine","axisLabel","axisTick","axisName"],l=["splitArea","splitLine"],u=t(h)[xe]({type:"axis",render:function(t,a){this.group[ve]();var o=this._axisGroup;if(this._axisGroup=new n.Group,this.group.add(this._axisGroup),t.get("show")){var u=a[U]("grid",t.get("gridIndex")),c=e(u,t),h=new r(t,c);i.each(s,h.add,h),this._axisGroup.add(h.getGroup()),i.each(l,function(e){t.get(e+".show")&&this["_"+e](t,u,c.labelInterval)},this),n.groupTransition(o,this._axisGroup,t)}},_splitLine:function(t,e,r){var s=t.axis,l=t[ri]("splitLine"),u=l[ri]("lineStyle"),c=u.get("color"),h=o(l,r);c=i[Se](c)?c:[c];for(var d=e[fe][pe](),f=s.isHorizontal(),p=0,v=s.getTicksCoords(),m=s.scale.getTicks(),g=[],y=[],_=u.getLineStyle(),x=0;x<v[Ne];x++)if(!a(s,x,h)){var b=s.toGlobalCoord(v[x]);f?(g[0]=b,g[1]=d.y,y[0]=b,y[1]=d.y+d[Ye]):(g[0]=d.x,g[1]=b,y[0]=d.x+d.width,y[1]=b);var w=p++%c[Ne];this._axisGroup.add(new n.Line(n.subPixelOptimizeLine({anid:"line_"+m[x],shape:{x1:g[0],y1:g[1],x2:y[0],y2:y[1]},style:i[Ze]({stroke:c[w]},_),silent:!0})))}},_splitArea:function(t,e,r){var s=t.axis,l=t[ri]("splitArea"),u=l[ri]("areaStyle"),c=u.get("color"),h=e[fe][pe](),d=s.getTicksCoords(),f=s.scale.getTicks(),p=s.toGlobalCoord(d[0]),v=s.toGlobalCoord(d[0]),m=0,g=o(l,r),y=u.getAreaStyle();c=i[Se](c)?c:[c];for(var _=1;_<d[Ne];_++)if(!a(s,_,g)){var x,b,w,M,S=s.toGlobalCoord(d[_]);s.isHorizontal()?(x=p,b=h.y,w=S-x,M=h[Ye]):(x=h.x,b=v,w=h.width,M=S-b);var T=m++%c[Ne];this._axisGroup.add(new n.Rect({anid:"area_"+f[_],shape:{x:x,y:b,width:w,height:M},style:i[Ze]({fill:c[T]},y),silent:!0})),p=x+w,v=b+M}}});u[He]({type:"xAxis"}),u[He]({type:"yAxis"})}),e("zrender/animation/requestAnimationFrame",[fi],function(){return typeof window!==Q&&(window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){setTimeout(t,16)}}),e("echarts/component/axis/AxisBuilder",[fi,hi,o,d,"../../model/Model","../../data/List",a,ui],function(t){function e(t){var e={componentType:t.mainType};return e[t.mainType+"Index"]=t.componentIndex,e}function i(t){return t.value}function n(t,e,i){var n,r,a=y(e-t[T]);return _(a)?(r=i>0?"top":$e,n=ae):_(a-S)?(r=i>0?$e:"top",n=ae):(r=oe,n=a>0&&S>a?i>0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,verticalAlign:r}}function s(t,e,i,n){var r,a,o=y(i-t[T]),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return _(o-S/2)?(a=l?$e:"top",r=ae):_(o-1.5*S)?(a=l?"top":$e,r=ae):(a=oe,r=1.5*S>o&&o>S/2?l?"left":"right":l?"right":"left"),{rotation:o,textAlign:r,verticalAlign:a}}var u=t(hi),h=t(o),f=t(d),p=t("../../model/Model"),m=t("../../data/List"),g=t(a),y=g.remRadian,_=g.isRadianAroundZero,x=t(ui),w=x[k],M=u.retrieve,S=Math.PI,C=function(t,e){this.opt=e,this.axisModel=t,u[Ze](e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0}),this.group=new f.Group;var i=new f.Group({position:e[re].slice(),rotation:e[T]});i.updateTransform(),this._transform=i[r],this._dumbGroup=i};C[si]={constructor:C,hasBuilder:function(t){return!!L[t]},add:function(t){L[t].call(this)},getGroup:function(){return this.group}};var L={axisLine:function(){var t=this.opt,e=this.axisModel;if(e.get("axisLine.show")){var i=this.axisModel.axis[K](),n=this._transform,r=[i[0],0],a=[i[1],0];n&&(w(r,r,n),w(a,a,n)),this.group.add(new f.Line(f.subPixelOptimizeLine({anid:"line",shape:{x1:r[0],y1:r[1],x2:a[0],y2:a[1]},style:u[He]({lineCap:"round"},e[ri]("axisLine.lineStyle").getLineStyle()),strokeContainThreshold:t.strokeContainThreshold,silent:!!t.axisLineSilent,z2:1})))}},axisTick:function(){var t=this.axisModel;if(t.get("axisTick.show"))for(var e=t.axis,i=t[ri]("axisTick"),n=this.opt,r=i[ri]("lineStyle"),a=i.get(Ne),o=P(i,n.labelInterval),s=e.getTicksCoords(),l=e.scale.getTicks(),c=[],h=[],d=this._transform,p=0;p<s[Ne];p++)if(!A(e,p,o)){var v=s[p];c[0]=v,c[1]=0,h[0]=v,h[1]=n.tickDirection*a,d&&(w(c,c,d),w(h,h,d)),this.group.add(new f.Line(f.subPixelOptimizeLine({anid:"tick_"+l[p],shape:{x1:c[0],y1:c[1],x2:h[0],y2:h[1]},style:u[Ze](r.getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")}),z2:2,silent:!0})))}},axisLabel:function(){function t(t,e){var i=t&&t[le]().clone(),n=e&&e[le]().clone();return i&&n?(i[k](t.getLocalTransform()),n[k](e.getLocalTransform()),i.intersect(n)):void 0}var i=this.opt,r=this.axisModel,a=M(i.axisLabelShow,r.get("axisLabel.show"));if(a){var o=r.axis,s=r[ri]("axisLabel"),l=s[ri](de),u=s.get("margin"),h=o.scale.getTicks(),d=r.getFormattedLabels(),m=M(i.labelRotation,s.get("rotate"))||0;m=m*S/180;for(var g=n(i,m,i.labelDirection),y=r.get("data"),_=[],x=r.get("silent"),b=0;b<h[Ne];b++)if(!A(o,b,i.labelInterval)){var w=l;y&&y[b]&&y[b][de]&&(w=new p(y[b][de],l,r[W]));var C=w[ue]()||r.get("axisLine.lineStyle.color"),L=o[c](h[b]),P=[L,i.labelOffset+i.labelDirection*u],I=o.scale[te](h[b]),D=new f.Text({anid:"label_"+h[b],style:{text:d[b],textAlign:w.get("align",!0)||g[he],textVerticalAlign:w.get("baseline",!0)||g.verticalAlign,textFont:w[ce](),fill:typeof C===Me?C(I):C},position:P,rotation:g[T],silent:x,z2:10});D.eventData=e(r),D.eventData.targetType="axisLabel",D.eventData.value=I,this._dumbGroup.add(D),D.updateTransform(),_.push(D),this.group.add(D),D.decomposeTransform()}if(o.type!==v){if(r.getMin?r.getMin():r.get("min")){var z=_[0],R=_[1];t(z,R)&&(z[Je]=!0)}if(r.getMax?r.getMax():r.get("max")){var O=_[_[Ne]-1],V=_[_[Ne]-2];t(V,O)&&(O[Je]=!0)}}}},axisName:function(){var t=this.opt,r=this.axisModel,a=M(t.axisName,r.get("name"));if(a){var o,l=r.get("nameLocation"),u=t.nameDirection,c=r[ri]("nameTextStyle"),d=r.get("nameGap")||0,p=this.axisModel.axis[K](),v=p[0]>p[1]?-1:1,g=["start"===l?p[0]-v*d:"end"===l?p[1]+v*d:(p[0]+p[1])/2,l===oe?t.labelOffset+u*d:0],y=r.get("nameRotate");null!=y&&(y=y*S/180),o=l===oe?n(t,null!=y?y:t[T],u):s(t,l,y||0,p);var _=a,x=M(t.axisNameTruncateLength,r.get("nameTruncateLength")),b=M(t.axisNameTruncateEllipsis,r.get("nameTruncateEllipsis"));null!=x&&(_=h.truncate(a,x,b));var w=new f.Text({anid:"name",__fullText:a,__truncatedText:_,style:{text:_,textFont:c[ce](),fill:c[ue]()||r.get("axisLine.lineStyle.color"),textAlign:o[he],textVerticalAlign:o.verticalAlign},position:g,rotation:o[T],silent:r.get("silent"),z2:1});if(null!=x){w[ke]=0;var C=new m(["value"],r);C.initData([{value:a,tooltip:{formatter:i}}]),w.dataModel=h.createDataFormatModel(C,{mainType:"axis"})}w.eventData=e(r),w.eventData.targetType="axisName",w.eventData.name=a,this._dumbGroup.add(w),w.updateTransform(),this.group.add(w),w.decomposeTransform()}}},A=C.ifIgnoreOnTick=function(t,e,i){var n,r=t.scale;return r.type===b&&(typeof i===Me?(n=r.getTicks()[e],!i(n,r[te](n))):e%(i+1))},P=C.getInterval=function(t,e){var i=t.get(l);return(null==i||"auto"==i)&&(i=e),i};return C}),e("zrender/Layer",[fi,"./core/util","./config","./graphic/Style","./graphic/Pattern"],function(t){function e(){return!1}function i(t,e,i,n){var r=document[$](e),a=i[ni](),o=i[ii](),s=r.style;return s[re]="absolute",s.left=0,s.top=0,s.width=a+"px",s[Ye]=o+"px",r.width=a*n,r[Ye]=o*n,r.setAttribute("data-zr-dom-id",t),r}var n=t("./core/util"),r=t("./config"),a=t("./graphic/Style"),o=t("./graphic/Pattern"),s=function(t,a,o){var s;o=o||r.devicePixelRatio,typeof t===oi?s=i(t,"canvas",a,o):n[We](t)&&(s=t,t=s.id),this.id=t,this.dom=s;var l=s.style;l&&(s.onselectstart=e,l["-webkit-user-select"]="none",l["user-select"]="none",l["-webkit-touch-callout"]="none",l["-webkit-tap-highlight-color"]="rgba(0,0,0,0)"),this.domBack=null,this.ctxBack=null,this.painter=a,this.config=null,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.dpr=o};return s[si]={constructor:s,elCount:0,__dirty:!0,initContext:function(){this.ctx=this.dom[J]("2d");var t=this.dpr;1!=t&&this.ctx.scale(t,t)},createBackBuffer:function(){var t=this.dpr;this.domBack=i("back-"+this.id,"canvas",this.painter,t),this.ctxBack=this.domBack[J]("2d"),1!=t&&this.ctxBack.scale(t,t)},resize:function(t,e){var i=this.dpr,n=this.dom,r=n.style,a=this.domBack;r.width=t+"px",r[Ye]=e+"px",n.width=t*i,n[Ye]=e*i,1!=i&&this.ctx.scale(i,i),a&&(a.width=t*i,a[Ye]=e*i,1!=i&&this.ctxBack.scale(i,i))},clear:function(t){var e=this.dom,i=this.ctx,n=e.width,r=e[Ye],s=this.clearColor,l=this.motionBlur&&!t,u=this.lastFrameAlpha,c=this.dpr;if(l&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(e,0,0,n/c,r/c)),i.clearRect(0,0,n/c,r/c),s){var h;s.colorStops?(h=s.__canvasGradient||a.getGradient(i,s,{x:0,y:0,width:n/c,height:r/c}),s.__canvasGradient=h):s.image&&(h=o[si].getCanvasPattern.call(s,i)),i.save(),i.fillStyle=h||s,i.fillRect(0,0,n/c,r/c),i.restore()}if(l){var d=this.domBack;i.save(),i.globalAlpha=u,i.drawImage(d,0,0,n/c,r/c),i.restore()}}},s}),e("echarts/preprocessor/helper/compatStyle",[fi,hi],function(t){function e(t){var e=t&&t.itemStyle;e&&i.each(n,function(n){var r=e[V],a=e[E];r&&r[n]&&(t[n]=t[n]||{},t[n][V]?i.merge(t[n][V],r[n]):t[n][V]=r[n],r[n]=null),a&&a[n]&&(t[n]=t[n]||{},t[n][E]?i.merge(t[n][E],a[n]):t[n][E]=a[n],a[n]=null)})}var i=t(hi),n=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];return function(t){if(t){e(t),e(t.markPoint),e(t.markLine);var n=t.data;if(n){for(var r=0;r<n[Ne];r++)e(n[r]);var a=t.markPoint;if(a&&a.data)for(var o=a.data,r=0;r<o[Ne];r++)e(o[r]);var s=t.markLine;if(s&&s.data)for(var l=s.data,r=0;r<l[Ne];r++)i[Se](l[r])?(e(l[r][0]),e(l[r][1])):e(l[r])}}}}),e("echarts/chart/helper/SymbolDraw",[fi,d,"./Symbol"],function(t){function e(t){this.group=new n.Group,this._symbolCtor=t||r}function i(t,e,i){var n=t.getItemLayout(e);return!(!n||isNaN(n[0])||isNaN(n[1])||i&&i(e)||"none"===t[Z](e,s))}var n=t(d),r=t("./Symbol"),a=e[si];return a.updateData=function(t,e){var r=this.group,a=t.hostModel,o=this._data,s=this._symbolCtor,l={itemStyle:a[ri]("itemStyle.normal").getItemStyle(["color"]),hoverItemStyle:a[ri]("itemStyle.emphasis").getItemStyle(),symbolRotate:a.get("symbolRotate"),symbolOffset:a.get("symbolOffset"),hoverAnimation:a.get("hoverAnimation"),labelModel:a[ri]("label.normal"),hoverLabelModel:a[ri]("label.emphasis")};t.diff(o).add(function(n){var a=t.getItemLayout(n);if(i(t,n,e)){var o=new s(t,n,l);o.attr(re,a),t.setItemGraphicEl(n,o),r.add(o)}})[Xe](function(u,c){var h=o[O](c),d=t.getItemLayout(u);return i(t,u,e)?(h?(h.updateData(t,u,l),n.updateProps(h,{position:d},a)):(h=new s(t,u),h.attr(re,d)),r.add(h),void t.setItemGraphicEl(u,h)):void r[Fe](h)})[Fe](function(t){var e=o[O](t);e&&e.fadeOut(function(){r[Fe](e)})}).execute(),this._data=t},a.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,i){var n=t.getItemLayout(i);e.attr(re,n)})},a[Fe]=function(t){var e=this.group,i=this._data;i&&(t?i.eachItemGraphicEl(function(t){t.fadeOut(function(){e[Fe](t)})}):e[ve]())},e}),e("echarts/chart/helper/Symbol",[fi,hi,"../../util/symbol",d,a],function(t){function e(t){return t instanceof Array||(t=[+t,+t]),t}function i(t,e,i){l.Group.call(this),this.updateData(t,e,i)}function n(t,e){this[C].drift(t,e)}var r=t(hi),o=t("../../util/symbol"),l=t(d),u=t(a),c=i[si];c._createSymbol=function(t,i,r){this[ve]();var a=i.hostModel,s=i[Z](r,"color"),u=o.createSymbol(t,-.5,-.5,1,1,s);u.attr({z2:100,culling:!0,scale:[0,0]}),u.drift=n;var c=e(i[Z](r,"symbolSize"));l.initProps(u,{scale:c},a,r),this._symbolType=t,this.add(u)},c.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},c.getScale=function(){return this.childAt(0).scale},c.highlight=function(){this.childAt(0)[Be](E)},c.downplay=function(){this.childAt(0)[Be](V)},c.setZ=function(t,e){var i=this.childAt(0);i[Ce]=t,i.z=e},c.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},c.updateData=function(t,i,n){this.silent=!1;var r=t[Z](i,s)||"circle",a=t.hostModel,o=e(t[Z](i,"symbolSize"));if(r!==this._symbolType)this._createSymbol(r,t,i);else{var u=this.childAt(0);l.updateProps(u,{scale:o},a,i)}this._updateCommon(t,i,o,n),this._seriesModel=a};var h=["itemStyle",V],f=["itemStyle",E],p=["label",V],v=["label",E];return c._updateCommon=function(t,i,n,a){var o=this.childAt(0),s=t.hostModel,c=t[Z](i,"color");
    "image"!==o.type&&o.useStyle({strokeNoScale:!0}),a=a||null;var d=a&&a.itemStyle,m=a&&a.hoverItemStyle,y=a&&a.symbolRotate,_=a&&a.symbolOffset,x=a&&a.labelModel,S=a&&a.hoverLabelModel,C=a&&a.hoverAnimation;if(!a||t.hasItemOption){var L=t[M](i);d=L[ri](h).getItemStyle(["color"]),m=L[ri](f).getItemStyle(),y=L[N]("symbolRotate"),_=L[N]("symbolOffset"),x=L[ri](p),S=L[ri](v),C=L[N]("hoverAnimation")}else m=r[He]({},m);var P=o.style;o[T]=(y||0)*Math.PI/180||0,_&&o.attr(re,[u[g](_[0],n[0]),u[g](_[1],n[1])]),o.setColor(c),o[Le](d);var I=t[Z](i,ne);null!=I&&(P[ne]=I);for(var k,D,z=t[w].slice();z[Ne]&&(k=z.pop(),D=t.getDimensionInfo(k).type,D===b||"time"===D););null!=k&&x[N]("show")?(l.setText(P,x,c),P.text=r.retrieve(s.getFormattedLabel(i,V),t.get(k,i))):P.text="",null!=k&&S[N]("show")?(l.setText(m,S,c),m.text=r.retrieve(s.getFormattedLabel(i,E),t.get(k,i))):m.text="";var R=e(t[Z](i,"symbolSize"));if(o.off(Re).off(ze).off(E).off(V),l[A](o,m),C&&s.ifEnableAnimation()){var O=function(){var t=R[1]/R[0];this.animateTo({scale:[Math.max(1.1*R[0],R[0]+3),Math.max(1.1*R[1],R[1]+3*t)]},400,"elasticOut")},B=function(){this.animateTo({scale:R},400,"elasticOut")};o.on(Re,O).on(ze,B).on(E,O).on(V,B)}},c.fadeOut=function(t){var e=this.childAt(0);this.silent=!0,e.style.text="",l.updateProps(e,{scale:[0,0]},this._seriesModel,this[ke],t)},r[me](i,l.Group),i}),e("echarts/chart/line/lineAnimationDiff",[fi],function(){function t(t){return t>=0?1:-1}function e(e,i,n){for(var r,a=e[F](),o=e.getOtherAxis(a),s=a.onZero?0:o.scale[K]()[0],l=o.dim,c="x"===l||l===u?1:0,h=i.stackedOn,d=i.get(l,n);h&&t(h.get(l,n))===t(d);){r=h;break}var p=[];return p[c]=i.get(a.dim,n),p[1-c]=r?r.get(l,n,!0):s,e[f](p)}function i(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})})[Xe](function(t,e){i.push({cmd:"=",idx:e,idx1:t})})[Fe](function(t){i.push({cmd:"-",idx:t})}).execute(),i}return function(t,n,r,a,o,s){for(var l=i(t,n),u=[],c=[],h=[],d=[],p=[],v=[],m=[],g=s[w],y=0;y<l[Ne];y++){var _=l[y],x=!0;switch(_.cmd){case"=":var b=t.getItemLayout(_.idx),M=n.getItemLayout(_.idx1);(isNaN(b[0])||isNaN(b[1]))&&(b=M.slice()),u.push(b),c.push(M),h.push(r[_.idx]),d.push(a[_.idx1]),m.push(n.getRawIndex(_.idx1));break;case"+":var S=_.idx;u.push(o[f]([n.get(g[0],S,!0),n.get(g[1],S,!0)])),c.push(n.getItemLayout(S).slice()),h.push(e(o,n,S)),d.push(a[S]),m.push(n.getRawIndex(S));break;case"-":var S=_.idx,T=t.getRawIndex(S);T!==S?(u.push(t.getItemLayout(S)),c.push(s[f]([t.get(g[0],S,!0),t.get(g[1],S,!0)])),h.push(r[S]),d.push(e(s,t,S)),m.push(T)):x=!1}x&&(p.push(_),v.push(v[Ne]))}v.sort(function(t,e){return m[t]-m[e]});for(var C=[],L=[],A=[],P=[],I=[],y=0;y<v[Ne];y++){var S=v[y];C[y]=u[S],L[y]=c[S],A[y]=h[S],P[y]=d[S],I[y]=p[S]}return{current:C,next:L,stackedOnCurrent:A,stackedOnNext:P,status:I}}}),e("echarts/chart/line/poly",[fi,"zrender/graphic/Path",ui],function(t){function e(t){return isNaN(t[0])||isNaN(t[1])}function i(t,i,n,r,f,p,v,m,g,y,_){for(var x=0,b=n,w=0;r>w;w++){var M=i[b];if(b>=f||0>b)break;if(e(M)){if(_){b+=p;continue}break}if(b===n)t[p>0?"moveTo":"lineTo"](M[0],M[1]),u(h,M);else if(g>0){var S=b+p,T=i[S];if(_)for(;T&&e(i[S]);)S+=p,T=i[S];var C=.5,L=i[x],T=i[S];if(!T||e(T))u(d,M);else{e(T)&&!_&&(T=M),a.sub(c,T,L);var A,P;if("x"===y||"y"===y){var I="x"===y?0:1;A=Math.abs(M[I]-L[I]),P=Math.abs(M[I]-T[I])}else A=a.dist(M,L),P=a.dist(M,T);C=P/(P+A),l(d,M,c,-g*(1-C))}o(h,h,m),s(h,h,v),o(d,d,m),s(d,d,v),t.bezierCurveTo(h[0],h[1],d[0],d[1],M[0],M[1]),l(h,M,c,g*C)}else t.lineTo(M[0],M[1]);x=b,b+=p}return w}function n(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var r=0;r<t[Ne];r++){var a=t[r];a[0]<i[0]&&(i[0]=a[0]),a[1]<i[1]&&(i[1]=a[1]),a[0]>n[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}var r=t("zrender/graphic/Path"),a=t(ui),o=a.min,s=a.max,l=a.scaleAndAdd,u=a.copy,c=[],h=[],d=[];return{Polyline:r[He]({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},buildPath:function(t,r){var a=r.points,o=0,s=a[Ne],l=n(a,r.smoothConstraint);if(r.connectNulls){for(;s>0&&e(a[s-1]);s--);for(;s>o&&e(a[o]);o++);}for(;s>o;)o+=i(t,a,o,s,s,1,l.min,l.max,r.smooth,r.smoothMonotone,r.connectNulls)+1}}),Polygon:r[He]({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},buildPath:function(t,r){var a=r.points,o=r.stackedOnPoints,s=0,l=a[Ne],u=r.smoothMonotone,c=n(a,r.smoothConstraint),h=n(o,r.smoothConstraint);if(r.connectNulls){for(;l>0&&e(a[l-1]);l--);for(;l>s&&e(a[s]);s++);}for(;l>s;){var d=i(t,a,s,l,l,1,c.min,c.max,r.smooth,u,r.connectNulls);i(t,o,s+d-1,d,l,-1,h.min,h.max,r.stackedOnSmooth,u,r.connectNulls),s+=d+1,t.closePath()}}})}}),e("echarts/chart/pie/labelLayout",[fi,"zrender/contain/text"],function(t){function e(t,e,i,n,r,a,o){function s(e,i,n){for(var r=e;i>r;r++)if(t[r].y+=n,r>e&&i>r+1&&t[r+1].y>t[r].y+t[r][Ye])return void l(r,n/2);l(i-1,n/2)}function l(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1][Ye]));n--);}function u(t,e,i,n,r,a){for(var o=a>0?e?Number.MAX_VALUE:0:e?Number.MAX_VALUE:0,s=0,l=t[Ne];l>s;s++)if(t[s][re]!==ae){var u=Math.abs(t[s].y-n),c=t[s].len,h=t[s].len2,d=r+c>u?Math.sqrt((r+c+h)*(r+c+h)-u*u):Math.abs(t[s].x-i);e&&d>=o&&(d=o-10),!e&&o>=d&&(d=o+10),t[s].x=i+d*a,o=d}}t.sort(function(t,e){return t.y-e.y});for(var c,h=0,d=t[Ne],f=[],p=[],v=0;d>v;v++)c=t[v].y-h,0>c&&s(v,d,-c,r),h=t[v].y+t[v][Ye];0>o-h&&l(d-1,h-o);for(var v=0;d>v;v++)t[v].y>=i?p.push(t[v]):f.push(t[v]);u(f,!1,e,i,n,r),u(p,!0,e,i,n,r)}function i(t,i,n,r,a,o){for(var s=[],l=[],u=0;u<t[Ne];u++)t[u].x<i?s.push(t[u]):l.push(t[u]);e(l,i,n,r,1,a,o),e(s,i,n,r,-1,a,o);for(var u=0;u<t[Ne];u++){var c=t[u].linePoints;if(c){var h=c[1][0]-c[2][0];c[2][0]=t[u].x<i?t[u].x+3:t[u].x-3,c[1][1]=c[2][1]=t[u].y,c[1][0]=c[2][0]+h}}}var n=t("zrender/contain/text");return function(t,e,r,a){var o,s,l=t[qe](),u=[],c=!1;l.each(function(i){var r,a,h,d,f=l.getItemLayout(i),p=l[M](i),v=p[ri]("label.normal"),m=v.get(re)||p.get("label.emphasis.position"),g=p[ri]("labelLine.normal"),y=g.get(Ne),_=g.get("length2"),x=(f.startAngle+f.endAngle)/2,b=Math.cos(x),w=Math.sin(x);o=f.cx,s=f.cy;var S=m===L||"inner"===m;if(m===ae)r=f.cx,a=f.cy,d=ae;else{var T=(S?(f.r+f.r0)/2*b:f.r*b)+o,C=(S?(f.r+f.r0)/2*w:f.r*w)+s;if(r=T+3*b,a=C+3*w,!S){var A=T+b*(y+e-f.r),P=C+w*(y+e-f.r),I=A+(0>b?-1:1)*_,k=P;r=I+(0>b?-5:5),a=k,h=[[T,C],[A,P],[I,k]]}d=S?ae:b>0?"left":"right"}var D=v[ri](de)[ce](),z=v.get("rotate")?0>b?-x+Math.PI:-x:0,R=t.getFormattedLabel(i,V)||l[G](i),O=n[le](R,D,d,"top");c=!!z,f.label={x:r,y:a,position:m,height:O[Ye],len:y,len2:_,linePoints:h,textAlign:d,verticalAlign:"middle",font:D,rotation:z},S||u.push(f.label)}),!c&&t.get("avoidLabelOverlap")&&i(u,o,s,e,r,a)}}),e("echarts/component/helper/MapDraw",[fi,"./RoamController",d,hi],function(t){function e(t){var e=t.getItemStyle(),i=t.get("areaColor");return i&&(e.fill=i),e}function i(t,e,i,r){e.off("click"),t.get("selectedMode")&&e.on("click",function(a){for(var o=a[De];!o.__region;)o=o[C];if(o){var s=o.__region,l={type:("geo"===t.mainType?"geo":"map")+"ToggleSelect",name:s.name,from:r.uid};l[t.mainType+"Id"]=t.id,i[Ge](l),n(t,e)}})}function n(t,e){e.eachChild(function(e){e.__region&&e[Be](t.isSelected(e.__region.name)?E:V)})}function r(t,e){var i=new o.Group;this._controller=new a(t.getZr(),e?i:null,null),this.group=i,this._updateGroup=e}var a=t("./RoamController"),o=t(d),s=t(hi);return r[si]={constructor:r,draw:function(t,r,a,l,u){var c=t[qe]&&t[qe](),h=t[fe],d=this.group,f=h.scale,p={position:h[re],scale:f};!d.childAt(0)||u?d.attr(p):o.updateProps(d,p,t),d[ve]();var v=["itemStyle",V],m=["itemStyle",E],g=["label",V],y=["label",E];s.each(h.regions,function(i){var n=new o.Group,r=new o.CompoundPath({shape:{paths:[]}});n.add(r);var a,l=t.getRegionModel(i.name)||t,u=l[ri](v),h=l[ri](m),p=e(u,f),_=e(h,f),x=l[ri](g),b=l[ri](y);if(c){a=c[R](i.name);var w=c[Z](a,"color",!0);w&&(p.fill=w)}var M=x[ri](de),S=b[ri](de);s.each(i.contours,function(t){var e=new o[D]({shape:{points:t}});r.shape.paths.push(e)}),r[Le](p),r.style.strokeNoScale=!0,r.culling=!0;var T=x.get("show"),C=b.get("show"),L=c&&isNaN(c.get("value",a)),P=c&&c.getItemLayout(a);if(!c||L&&(T||C)||P&&P.showLabel){var I=c?a:i.name,k=t.getFormattedLabel(I,V),z=t.getFormattedLabel(I,E),O=new o.Text({style:{text:T?k||i.name:"",fill:M[ue](),textFont:M[ce](),textAlign:"center",textVerticalAlign:"middle"},hoverStyle:{text:C?z||i.name:"",fill:S[ue](),textFont:S[ce]()},position:i[ae].slice(),scale:[1/f[0],1/f[1]],z2:10,silent:!0});n.add(O)}if(c)c.setItemGraphicEl(a,n);else{var l=t.getRegionModel(i.name);r.eventData={componentType:"geo",geoIndex:t.componentIndex,name:i.name,region:l&&l[Y]||{}}}n.__region=i,o[A](n,_),d.add(n)}),this._updateController(t,r,a),i(t,d,a,l),n(t,d)},remove:function(){this.group[ve](),this._controller[Ve]()},_updateController:function(t,e,i){function n(){var e={type:"geoRoam",componentType:o};return e[o+"Id"]=t.id,e}var r=t[fe],a=this._controller;a.zoomLimit=t.get("scaleLimit"),a.zoom=r.getZoom(),a.enable(t.get("roam")||!1);var o=t.mainType;a.off("pan").on("pan",function(t,e){i[Ge](s[He](n(),{dx:t,dy:e}))}),a.off("zoom").on("zoom",function(t,e,r){if(i[Ge](s[He](n(),{zoom:t,originX:e,originY:r})),this._updateGroup){var a=this.group,o=a.scale;a[Ae](function(t){"text"===t.type&&t.attr("scale",[1/o[0],1/o[1]])})}},this),a.rectProvider=function(){return r.getViewRectAfterRoam()}}},r}),e("echarts/util/symbol",[fi,"./graphic",z],function(t){var e=t("./graphic"),i=t(z),n=e.extendShape({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e[Ye]/2;t.moveTo(i,n-a),t.lineTo(i+r,n+a),t.lineTo(i-r,n+a),t.closePath()}}),r=e.extendShape({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e[Ye]/2;t.moveTo(i,n-a),t.lineTo(i+r,n),t.lineTo(i,n+a),t.lineTo(i-r,n),t.closePath()}}),a=e.extendShape({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width/5*3,a=Math.max(r,e[Ye]),o=r/2,s=o*o/(a-o),l=n-a+o+s,u=Math.asin(s/o),c=Math.cos(u)*o,h=Math.sin(u),d=Math.cos(u);t.arc(i,l,o,Math.PI-u,2*Math.PI+u);var f=.6*o,p=.7*o;t.bezierCurveTo(i+c-h*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-c+h*f,l+s+d*f,i-c,l+s),t.closePath()}}),o=e.extendShape({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e[Ye],n=e.width,r=e.x,a=e.y,o=n/3*2;t.moveTo(r,a),t.lineTo(r+o,a+i),t.lineTo(r,a+i/4*3),t.lineTo(r-o,a+i),t.lineTo(r,a),t.closePath()}}),s={line:e.Line,rect:e.Rect,roundRect:e.Rect,square:e.Rect,circle:e.Circle,diamond:r,pin:a,arrow:o,triangle:n},l={line:function(t,e,i,n,r){r.x1=t,r.y1=e+n/2,r.x2=t+i,r.y2=e+n/2},rect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r[Ye]=n},roundRect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r[Ye]=n,r.r=Math.min(i,n)/4},square:function(t,e,i,n,r){var a=Math.min(i,n);r.x=t,r.y=e,r.width=a,r[Ye]=a},circle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.r=Math.min(i,n)/2},diamond:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r[Ye]=n},pin:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r[Ye]=n},arrow:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r[Ye]=n},triangle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r[Ye]=n}},u={};for(var c in s)u[c]=new s[c];var h=e.extendShape({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style,e=this.shape;"pin"===e.symbolType&&t.textPosition===L&&(t.textPosition=["50%","40%"],t[he]=ae,t.textVerticalAlign=oe)},buildPath:function(t,e){var i=e.symbolType,n=u[i];"none"!==e.symbolType&&(n||(i="rect",n=u[i]),l[i](e.x,e.y,e.width,e[Ye],n.shape),n.buildPath(t,n.shape))}}),d=function(t){if("image"!==this.type){var e=this.style,i=this.shape;i&&"line"===i.symbolType?e[P]=t:this.__isEmptyBrush?(e[P]=t,e.fill="#fff"):(e.fill&&(e.fill=t),e[P]&&(e[P]=t)),this.dirty(!1)}},f={createSymbol:function(t,n,r,a,o,s){var l=0===t[ge]("empty");l&&(t=t.substr(5,1)[li]()+t.substr(6));var u;return u=0===t[ge]("image://")?new e.Image({style:{image:t.slice(8),x:n,y:r,width:a,height:o}}):0===t[ge]("path://")?e.makePath(t.slice(7),{},new i(n,r,a,o)):new h({shape:{symbolType:t,x:n,y:r,width:a,height:o}}),u.__isEmptyBrush=l,u.setColor=d,u.setColor(s),u}};return f}),e("echarts/component/helper/listComponent",[fi,"../../util/layout","../../util/format",d],function(t){function e(t,e,n){i.positionGroup(t,e.getBoxLayoutParams(),{width:n[ni](),height:n[ii]()},e.get("padding"))}var i=t("../../util/layout"),n=t("../../util/format"),r=t(d);return{layout:function(t,n,r){var a=i[se](n.getBoxLayoutParams(),{width:r[ni](),height:r[ii]()},n.get("padding"));i.box(n.get("orient"),t,n.get("itemGap"),a.width,a[Ye]),e(t,n,r)},addBackground:function(t,e){var i=n.normalizeCssArray(e.get("padding")),a=t[le](),o=e.getItemStyle(["color",ne]);o.fill=e.get(ti);var s=new r.Rect({shape:{x:a.x-i[3],y:a.y-i[0],width:a.width+i[1]+i[3],height:a[Ye]+i[0]+i[2]},style:o,silent:!0,z2:-1});r.subPixelOptimizeRect(s),t.add(s)}}}),e("echarts/component/tooltip/TooltipContent",[fi,hi,ci,"zrender/core/event","../../util/format",di],function(t){function e(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return o.map(p,function(t){return t+"transition:"+i}).join(";")}function i(t){var e=[],i=t.get("fontSize"),n=t[ue]();return n&&e.push("color:"+n),e.push("font:"+t[ce]()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),h(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function n(t){t=t;var n=[],r=t.get("transitionDuration"),a=t.get(ti),o=t[ri](de),l=t.get("padding");return r&&n.push(e(r)),a&&(f[ei]?n.push("background-Color:"+a):(n.push("background-Color:#"+s.toHex(a)),n.push("filter:alpha(opacity=70)"))),h(["width","color",u],function(e){var i="border-"+e,r=d(i),a=t.get(r);null!=a&&n.push(i+":"+a+("color"===e?"":"px"))}),n.push(i(o)),null!=l&&n.push("padding:"+c.normalizeCssArray(l).join("px ")+"px"),n.join(";")+";"}function r(t,e){var i=document[$]("div"),n=e.getZr();this.el=i,this._x=e[ni]()/2,this._y=e[ii]()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var r=this;i.onmouseenter=function(){r.enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},i.onmousemove=function(e){if(!r.enterable){var i=n.handler;l.normalizeEvent(t,e),i.dispatch("mousemove",e)}},i.onmouseleave=function(){r.enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1},a(i,t)}function a(t,e){function i(t){n(t[De])&&t.preventDefault()}function n(i){for(;i&&i!==e;){if(i===t)return!0;i=i.parentNode}}l.addEventListener(e,"touchstart",i),l.addEventListener(e,"touchmove",i),l.addEventListener(e,"touchend",i)}var o=t(hi),s=t(ci),l=t("zrender/core/event"),c=t("../../util/format"),h=o.each,d=c.toCamelCase,f=t(di),p=["","-webkit-","-moz-","-o-"],v="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";return r[si]={constructor:r,enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i[re]&&"absolute"!==e[re]&&(i[re]="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText=v+n(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",this._show=!0},setContent:function(t){var e=this.el;e.innerHTML=t,e.style.display=t?"block":"none"},moveTo:function(t,e){var i=this.el.style;i.left=t+"px",i.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this.enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(o.bind(this.hide,this),t)):this.hide())},isShow:function(){return this._show}},r}),e("echarts/component/marker/markerHelper",[fi,hi,a],function(t){function e(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function i(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function n(t,e,i){var n=-1;do n=Math.max(s.getPrecision(t.get(e,i)),n),t=t.stackedOn;while(t);return n}function r(t,e,i,r,a,o){var s=[],l=g(e,r,t),u=e.indexOfNearest(r,l,!0);s[a]=e.get(i,u,!0),s[o]=e.get(r,u,!0);var c=n(e,r,u);return c>=0&&(s[o]=+s[o][m](c)),s}var o=t(hi),s=t(a),l=o[ge],u=o.curry,c={min:u(r,"min"),max:u(r,"max"),average:u(r,"average")},h=function(t,e){var n=t[qe](),r=t[fe];if(e&&!i(e)&&!o[Se](e.coord)&&r){var a=r[w],s=d(e,n,r,t);if(e=o.clone(e),e.type&&c[e.type]&&s.baseAxis&&s.valueAxis){var u=l(a,s.baseAxis.dim),h=l(a,s.valueAxis.dim);e.coord=c[e.type](n,s.baseDataDim,s.valueDataDim,u,h),e.value=e.coord[h]}else{for(var f=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],p=0;2>p;p++)if(c[f[p]]){var v=t.coordDimToDataDim(a[p])[0];f[p]=g(n,v,f[p])}e.coord=f}}return e},d=function(t,e,i,n){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=i[p](n.dataDimToCoordDim(r.valueDataDim)),r.baseAxis=i.getOtherAxis(r.valueAxis),r.baseDataDim=n.coordDimToDataDim(r.baseAxis.dim)[0]):(r.baseAxis=n[F](),r.valueAxis=i.getOtherAxis(r.baseAxis),r.baseDataDim=n.coordDimToDataDim(r.baseAxis.dim)[0],r.valueDataDim=n.coordDimToDataDim(r.valueAxis.dim)[0]),r},f=function(t,i){return t&&t.containData&&i.coord&&!e(i)?t.containData(i.coord):!0},v=function(t,e,i,n){return 2>n?t.coord&&t.coord[n]:t.value},g=function(t,e,i){if("average"===i){var n=0,r=0;return t.each(e,function(t){isNaN(t)||(n+=t,r++)},!0),n/r}return t[x](e,!0)["max"===i?1:0]};return{dataTransform:h,dataFilter:f,dimValueGetter:v,getAxisInfo:d,numCalculate:g}}),e("echarts/component/marker/MarkerView",[fi,h],function(t){return t(h)[xe]({type:"marker",init:function(){this.markerGroupMap={}},render:function(t,e,i){var n=this.markerGroupMap;for(var r in n)n[r].__keep=!1;var a=this.type+"Model";e[Ue](function(t){var n=t[a];n&&this.renderSeries(t,n,e,i)},this);for(var r in n)n[r].__keep||this.group[Fe](n[r].group)},renderSeries:function(){}})}),e("echarts/util/throttle",[],function(){var t={},e="\x00__throttleOriginMethod",i="\x00__throttleRate",n="\x00__throttleType";return t.throttle=function(t,e,i){function n(){u=(new Date).getTime(),c=null,t.apply(o,s||[])}var r,a,o,s,l=0,u=0,c=null;e=e||0;var h=function(){r=(new Date).getTime(),o=this,s=arguments,a=r-(i?l:u)-e,clearTimeout(c),i?c=setTimeout(n,e):a>=0?n():c=setTimeout(n,-a),l=r};return h.clear=function(){c&&(clearTimeout(c),c=null)},h},t.createOrUpdate=function(r,a,o,s){var l=r[a];if(l){var u=l[e]||l,c=l[n],h=l[i];if(h!==o||c!==s){if(null==o||!s)return r[a]=u;l=r[a]=t.throttle(u,o,"debounce"===s),l[e]=u,l[n]=s,l[i]=o}return l}},t.clear=function(t,i){var n=t[i];n&&n[e]&&(t[i]=n[e])},t}),e("echarts/component/helper/sliderMove",[fi],function(){return function(t,e,i,r,a){function o(t,e,i){var r=e[Ne]?e.slice():[e,e];return e[0]>e[1]&&r[n](),0>t&&r[0]+t<i[0]&&(t=i[0]-r[0]),t>0&&r[1]+t>i[1]&&(t=i[1]-r[1]),t}return t?("rigid"===r?(t=o(t,e,i),e[0]+=t,e[1]+=t):(t=o(t,e[a],i),e[a]+=t,"push"===r&&e[0]>e[1]&&(e[1-a]=e[a])),e):e}}),e("echarts/component/helper/RoamController",[fi,"zrender/mixin/Eventful",hi,"zrender/core/event","./interactionMutex"],function(t){function e(t){if(!t[De]||!t[De].draggable){var e=t.offsetX,i=t.offsetY,n=this.rectProvider&&this.rectProvider();n&&n[ee](e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function i(t){if(this._dragging&&(c.stop(t.event),"pinch"!==t.gestureEvent)){if(h.isTaken(this._zr,"globalPan"))return;var e=t.offsetX,i=t.offsetY,n=e-this._x,r=i-this._y;this._x=e,this._y=i;var a=this[De];if(a){var o=a[re];o[0]+=n,o[1]+=r,a.dirty()}c.stop(t.event),this[Be]("pan",n,r)}}function n(){this._dragging=!1}function r(t){var e=t.wheelDelta>0?1.1:1/1.1;o.call(this,t,e,t.offsetX,t.offsetY)}function a(t){if(!h.isTaken(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;o.call(this,t,e,t.pinchX,t.pinchY)}}function o(t,e,i,n){var r=this.rectProvider&&this.rectProvider();if(r&&r[ee](i,n)){c.stop(t.event);var a=this[De],o=this.zoomLimit;if(a){var s=a[re],l=a.scale,u=this.zoom=this.zoom||1;if(u*=e,o){var h=o.min||0,d=o.max||1/0;u=Math.max(Math.min(d,u),h)}var f=u/this.zoom;this.zoom=u,s[0]-=(i-s[0])*(f-1),s[1]-=(n-s[1])*(f-1),l[0]*=f,l[1]*=f,a.dirty()}this[Be]("zoom",e,i,n)}}function s(t,o,s){this[De]=o,this.rectProvider=s,this.zoomLimit,this.zoom,this._zr=t;var c=u.bind,h=c(e,this),d=c(i,this),f=c(n,this),p=c(r,this),v=c(a,this);l.call(this),this.enable=function(e){this.disable(),null==e&&(e=!0),(e===!0||"move"===e||"pan"===e)&&(t.on("mousedown",h),t.on("mousemove",d),t.on("mouseup",f)),(e===!0||"scale"===e||"zoom"===e)&&(t.on("mousewheel",p),t.on("pinch",v))},this.disable=function(){t.off("mousedown",h),t.off("mousemove",d),t.off("mouseup",f),t.off("mousewheel",p),t.off("pinch",v)},this[Ve]=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}var l=t("zrender/mixin/Eventful"),u=t(hi),c=t("zrender/core/event"),h=t("./interactionMutex");return u.mixin(s,l),s}),e("echarts/component/helper/BrushController",[fi,"zrender/mixin/Eventful",hi,d,"./interactionMutex","../../data/DataDiffer"],function(t){function e(t){G.call(this),this._zr=t,this.group=new F.Group,this._brushType,this._brushOption,this._panels,this._track=[],this._dragging,this._covers=[],this._creatingCover,this._creatingPanel,this._enableGlobalPan,this._uid="brushController_"+se++,this._handlers={},X(ue,function(t,e){this._handlers[e]=H.bind(t,this)},this)}function i(t,e){var i=t._zr;t._enableGlobalPan||W.take(i,ie,t._uid),X(t._handlers,function(t,e){i.on(e,t)}),t._brushType=e.brushType,t._brushOption=H.merge(H.clone(oe),e,!0)}function r(t){var e=t._zr;W.release(e,ie,t._uid),X(t._handlers,function(t,i){e.off(i,t)}),t._brushType=t._brushOption=null}function a(t,e){var i=ce[e.brushType].createCover(t,e);return l(i),i.__brushOption=e,t.group.add(i),i}function o(t,e){var i=c(e);return i.endCreating&&(i.endCreating(t,e),l(e)),e}function s(t,e){var i=e.__brushOption;c(e).updateCoverShape(t,e,i.range,i)}function l(t){t[Ae](function(t){t.z=Q,t.z2=Q})}function u(t,e){c(e).updateCommon(t,e),s(t,e)}function c(t){return ce[t.__brushOption.brushType]}function h(t,e,i){var n=t._panels;if(!n)return!0;var r;return X(n,function(t){t[ee](e,i)&&(r=t)}),r}function f(t,e){var i=t._panels;if(!i)return!0;var n=e.__brushOption.panelId;return null!=n?i[n]:!0}function p(t){var e=t._covers,i=e[Ne];return X(e,function(e){t.group[Fe](e)},t),e[Ne]=0,!!i}function v(t,e){var i=j(t._covers,function(t){var e=t.__brushOption,i=H.clone(e.range);return{brushType:e.brushType,panelId:e.panelId,range:i}});t[Be]("brush",i,{isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function m(t){var e=t._track;if(!e[Ne])return!1;var i=e[e[Ne]-1],n=e[0],r=i[0]-n[0],a=i[1]-n[1],o=J(r*r+a*a,.5);return o>K}function g(t){var e=t[Ne]-1;return 0>e&&(e=0),[t[0],t[e]]}function y(t,e,i,n){var r=new F.Group;return r.add(new F.Rect({name:"main",style:w(i),silent:!0,draggable:!0,cursor:"move",drift:U(t,e,r,"nswe"),ondragend:U(v,e,{isEnd:!0})})),X(n,function(i){r.add(new F.Rect({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:U(t,e,r,i),ondragend:U(v,e,{isEnd:!0})}))}),r}function _(t,e,i,n){var r=n.brushStyle[I]||0,a=$(r,te),o=i[0][0],s=i[1][0],l=o-r/2,u=s-r/2,c=i[0][1],h=i[1][1],d=c-a+r/2,f=h-a+r/2,p=c-o,v=h-s,m=p+r,g=v+r;b(t,e,"main",o,s,p,v),n.transformable&&(b(t,e,"w",l,u,a,g),b(t,e,"e",d,u,a,g),b(t,e,"n",l,u,m,a),b(t,e,"s",l,f,m,a),b(t,e,"nw",l,u,a,a),b(t,e,"ne",d,u,a,a),b(t,e,"sw",l,f,a,a),b(t,e,"se",d,f,a,a))}function x(t,e){var i=e.__brushOption,n=i.transformable,r=e.childAt(0);r.useStyle(w(i)),r.attr({silent:!n,cursor:n?"move":"default"}),X(["w","e","n","s","se","sw","ne","nw"],function(i){var r=e.childOfName(i),a=L(t,i);r&&r.attr({silent:!n,invisible:!n,cursor:n?ae[a]+"-resize":null})})}function b(t,e,i,n,r,a,o){var s=e.childOfName(i);s&&s[S](R(z(t,e,[[n,r],[n+a,r+o]])))}function w(t){return H[Ze]({strokeNoScale:!0},t.brushStyle)}function M(t,e,i,n){var r=[Y(t,i),Y(e,n)],a=[$(t,i),$(e,n)];return[[r[0],a[0]],[r[1],a[1]]]}function C(t){return F.getTransform(t.group)}function L(t,e){if(e[Ne]>1){e=e.split("");var i=[L(t,e[0]),L(t,e[1])];return("e"===i[0]||"w"===i[0])&&i[n](),i.join("")}var r={w:"left",e:"right",n:"top",s:"bottom"},a={left:"w",right:"e",top:"n",bottom:"s"},i=F.transformDirection(r[e],C(t));return a[i]}function A(t,e,i,n,r,a,o){var s=n.__brushOption,l=t(s.range),c=k(i,a,o);X(r.split(""),function(t){var e=ne[t];l[e[0]][e[1]]+=c[e[0]]}),s.range=e(M(l[0][0],l[1][0],l[0][1],l[1][1])),u(i,n),v(i,{isEnd:!1})}function P(t,e,i,n){var r=e.__brushOption.range,a=k(t,i,n);X(r,function(t){t[0]+=a[0],t[1]+=a[1]}),u(t,e),v(t,{isEnd:!1})}function k(t,e,i){var n=t.group,r=n.transformCoordToLocal(e,i),a=n.transformCoordToLocal(0,0);return[r[0]-a[0],r[1]-a[1]]}function z(t,e,i){var n=f(t,e);if(n===!0)return H.clone(i);var r=n[le]();return H.map(i,function(t){var e=t[0];e=$(e,r.x),e=Y(e,r.x+r.width);var i=t[1];return i=$(i,r.y),i=Y(i,r.y+r[Ye]),[e,i]})}function R(t){var e=Y(t[0][0],t[1][0]),i=Y(t[0][1],t[1][1]),n=$(t[0][0],t[1][0]),r=$(t[0][1],t[1][1]);return{x:e,y:i,width:n-e,height:r-i}}function O(t,e){var i=e.offsetX,n=e.offsetY,r=t._zr;if(t._brushType){for(var a,o=t._panels,s=t._covers,l=0;l<s[Ne];l++)if(ce[s[l].__brushOption.brushType][ee](s[l],i,n)){a=!0;break}a||(o?X(o,function(t){t[ee](i,n)&&r.setCursorStyle("crosshair")}):r.setCursorStyle("crosshair"))}}function V(t){var e=t.event;e.preventDefault&&e.preventDefault()}function E(t,e,i){return t.childOfName("main")[ee](e,i)}function B(t,e,i){var n,r=e.offsetX,l=e.offsetY,u=t._creatingCover,c=t._creatingPanel,d=t._brushOption;if(t._track.push(t.group.transformCoordToLocal(r,l)),m(t)||u){if(c&&!u){"single"===d.brushMode&&p(t);var f=H.clone(d);f.panelId=c===!0?null:c.__brushPanelId,u=t._creatingCover=a(t,f),t._covers.push(u)}if(u){var v=ce[t._brushType],g=u.__brushOption;g.range=v.getCreatingRange(z(t,u,t._track)),i&&(o(t,u),v.updateCommon(t,u)),s(t,u),n={isEnd:i}}}else i&&"single"===d.brushMode&&d.removeOnClick&&h(t,r,l)&&p(t)&&(n={isEnd:i,removeOnClick:!0});return n}function N(t){if(this._dragging){V(t);var e=B(this,t,!0);this._dragging=!1,this._track=[],this._creatingCover=null,e&&v(this,e)}}function Z(t){return{createCover:function(e,i){return y(U(A,function(e){var i=[e,[0,100]];return t&&i[n](),i},function(e){return e[t]}),e,i,[["w","e"],["n","s"]][t])},getCreatingRange:function(e){var i=g(e),n=Y(i[0][t],i[1][t]),r=$(i[0][t],i[1][t]);return[n,r]},updateCoverShape:function(e,i,r,a){var o,s=a.brushStyle.width;if(null==s){var l=f(e,i),u=0;if(l!==!0){var c=l[le]();s=t?c.width:c[Ye],u=t?c.x:c.y}o=[u,u+(s||0)]}else o=[-s/2,s/2];var h=[r,o];t&&h[n](),_(e,i,h,a)},updateCommon:x,contain:E}}var G=t("zrender/mixin/Eventful"),H=t(hi),F=t(d),W=t("./interactionMutex"),q=t("../../data/DataDiffer"),U=H.curry,X=H.each,j=H.map,Y=Math.min,$=Math.max,J=Math.pow,Q=1e4,K=6,te=6,ie="globalPan",ne={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},ae={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},oe={brushStyle:{lineWidth:2,stroke:"rgba(0,0,0,0.3)",fill:"rgba(0,0,0,0.1)"},transformable:!0,brushMode:"single",removeOnClick:!1},se=0;e[si]={constructor:e,enableBrush:function(t){return this._brushType&&r(this),t.brushType&&i(this,t),this},setPanels:function(t){var e=this._panels||{},i=this._panels=t&&t[Ne]&&{},n=this.group;return i&&X(t,function(t){var r=t.panelId,a=e[r];a||(a=new F.Rect({silent:!0,invisible:!0}),n.add(a)),a.attr("shape",t.rect),a.__brushPanelId=r,i[r]=a,e[r]=null}),X(e,function(t){t&&n[Fe](t)}),this},mount:function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({position:t[re]||[0,0],rotation:t[T]||0,scale:t.scale||[1,1]}),this},eachCover:function(t,e){X(this._covers,t,e)},updateCovers:function(t){function e(t,e){return(null!=t.id?t.id:s+e)+"-"+t.brushType}function i(t,i){return e(t.__brushOption,i)}function n(e,i){var n=t[e];if(null!=i&&l[i]===d)c[e]=l[i];else{var r=c[e]=null!=i?(l[i].__brushOption=n,l[i]):o(h,a(h,n));u(h,r)}}function r(t){l[t]!==d&&h.group[Fe](l[t])}t=H.map(t,function(t){return H.merge(H.clone(oe),t,!0)});var s="\x00-brush-index-",l=this._covers,c=this._covers=[],h=this,d=this._creatingCover;return new q(l,t,i,e).add(n)[Xe](n)[Fe](r).execute(),this},unmount:function(){return this.enableBrush(!1),p(this),this._zr[Fe](this.group),this},dispose:function(){this.unmount(),this.off()}},H.mixin(e,G);var ue={mousedown:function(t){if(this._dragging)N.call(this,t);else if(!t[De]||!t[De].draggable){V(t);var e=t.offsetX,i=t.offsetY;this._creatingCover=null;var n=this._creatingPanel=h(this,e,i);n&&(this._dragging=!0,this._track=[this.group.transformCoordToLocal(e,i)])}},mousemove:function(t){if(O(this,t),this._dragging){V(t);var e=B(this,t,!1);e&&v(this,e)}},mouseup:N},ce={lineX:Z(0),lineY:Z(1),rect:{createCover:function(t,e){return y(U(A,function(t){return t},function(t){return t}),t,e,["w","e","n","s","se","sw","ne","nw"])},getCreatingRange:function(t){var e=g(t);return M(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,i,n){_(t,e,i,n)},updateCommon:x,contain:E},polygon:{createCover:function(t,e){var i=new F.Group;return i.add(new F.Polyline({name:"main",style:w(e),silent:!0})),i},getCreatingRange:function(t){return t},endCreating:function(t,e){e[Fe](e.childAt(0)),e.add(new F[D]({name:"main",draggable:!0,drift:U(P,t,e),ondragend:U(v,t,{isEnd:!0})}))},updateCoverShape:function(t,e,i){e.childAt(0)[S]({points:z(t,e,i)})},updateCommon:x,contain:E}};return e}),e("echarts/component/helper/brushHelper",[fi,hi,d],function(t){function e(t){return t[0]>t[1]&&t[n](),t}function i(t,e){for(var i=!0,n=0;n<u[Ne];n++){var r=u[n]+"Index";if(t[r]>=0){i=!1;for(var a=0;a<e[Ne];a++)if(e[a][r]===t[r])return e[a]}}return i}function r(t,i,n,r){var o=n.coordSys[p](t);return e(a.map([0,1],function(t){return i?o.coordToData(o.toLocalCoord(r[t])):o.toGlobalCoord(o[c](r[t]))}))}var a=t(hi),o=t(d),s=a.each,l={},u=["geo","xAxis","yAxis"],h="--",v=[f,"pointToData"];l.parseOutputRanges=function(t,e,n,r){s(t,function(t,n){var a=t.panelId;if(a){a=a.split(h),t[a[0]+"Index"]=+a[1];var o=i(t,e);t.coordRange=m[t.brushType](1,o,t.range),r&&(r[n]=o)}})},l.parseInputRanges=function(t){s(t.areas,function(e){var n=i(e,t.coordInfoList);e.range=e.range||[],n&&n!==!0&&(e.range=m[e.brushType](0,n,e.coordRange),e.panelId=n.panelId)})},l.makePanelOpts=function(t){var e=[];return s(t,function(t){var i,n=t.coordSys;t.geoIndex>=0?(i=n[le]().clone(),i[k](o.getTransform(n))):i=n.grid[pe]().clone(),e.push({panelId:t.panelId,rect:i})}),e},l.makeCoordInfoList=function(t,e){var i=[];return s(u,function(n){var r=t[n+"Index"];null!=r&&"none"!==r&&("all"===r||a[Se](r)||(r=[r]),e[Qe]({mainType:n},function(t,e){if(!("all"!==r&&a[ge](r,e)<0)){var o,s;"xAxis"===n||"yAxis"===n?o=t.axis.grid:s=t[fe];for(var l,u=0,c=i[Ne];c>u;u++){var d=i[u];if("yAxis"===n&&!d.yAxis&&d.xAxis){var f=o.getCartesian(d.xAxisIndex,e);if(f){s=f,l=d;break}}}!l&&i.push(l={}),l[n]=t,l[n+"Index"]=e,l.panelId=n+h+e,l.coordSys=s||o.getCartesian(l.xAxisIndex,l.yAxisIndex),l.coordSys?i[n+"Has"]=!0:i.pop()}}))}),i},l.controlSeries=function(t,e,n){var r=i(t,e.coordInfoList);return r===!0||r&&r.coordSys===n[fe]};var m={lineX:a.curry(r,"x"),lineY:a.curry(r,"y"),rect:function(t,i,n){var r=i.coordSys,a=r[v[t]]([n[0][0],n[1][0]]),o=r[v[t]]([n[0][1],n[1][1]]);return[e([a[0],o[0]]),e([a[1],o[1]])]},polygon:function(t,e,i){var n=e.coordSys;return a.map(i,n[v[t]],n)}};return l}),e("echarts/component/dataZoom/history",[fi,hi],function(t){function e(t){var e=t[r];return e||(e=t[r]=[{}]),e}var i=t(hi),n=i.each,r="\x00_ec_hist_store",a={push:function(t,i){var r=e(t);n(i,function(e,i){for(var n=r[Ne]-1;n>=0;n--){var a=r[n];if(a[i])break}if(0>n){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var s=o.getPercentRange();r[0][i]={dataZoomId:i,start:s[0],end:s[1]}}}}),r.push(i)},pop:function(t){var i=e(t),r=i[i[Ne]-1];i[Ne]>1&&i.pop();
    var a={};return n(r,function(t,e){for(var n=i[Ne]-1;n>=0;n--){var t=i[n][e];if(t){a[e]=t;break}}}),a},clear:function(t){t[r]=null},count:function(t){return e(t)[Ne]}};return a}),e("echarts/component/dataZoomSelect",[fi,"./dataZoom/typeDefaulter","./dataZoom/DataZoomModel","./dataZoom/DataZoomView","./dataZoom/SelectZoomModel","./dataZoom/SelectZoomView","./dataZoom/dataZoomProcessor","./dataZoom/dataZoomAction"],function(t){t("./dataZoom/typeDefaulter"),t("./dataZoom/DataZoomModel"),t("./dataZoom/DataZoomView"),t("./dataZoom/SelectZoomModel"),t("./dataZoom/SelectZoomView"),t("./dataZoom/dataZoomProcessor"),t("./dataZoom/dataZoomAction")}),e("echarts/component/dataZoom/roams",[fi,hi,"../../component/helper/RoamController","../../util/throttle"],function(t){function e(t){var e=t.getZr();return e[d]||(e[d]={})}function i(t,e,i){var n=new u(t.getZr());return n.enable(),n.on("pan",h(r,i)),n.on("zoom",h(a,i)),n}function n(t){l.each(t,function(e,i){e.count||(e.controller.off("pan").off("zoom"),delete t[i])})}function r(t,e,i){o(t,function(n){return n.panGetRange(t.controller,e,i)})}function a(t,e,i,n){o(t,function(r){return r.zoomGetRange(t.controller,e,i,n)})}function o(t,e){var i=[];l.each(t.dataZoomInfos,function(t){var n=e(t);n&&i.push({dataZoomId:t.dataZoomId,start:n[0],end:n[1]})}),t[Ge](i)}function s(t,e){t[Ge]({type:"dataZoom",batch:e})}var l=t(hi),u=t("../../component/helper/RoamController"),c=t("../../util/throttle"),h=l.curry,d="\x00_ec_dataZoom_roams",f={register:function(t,r){var a=e(t),o=r.dataZoomId,u=r.coordId;l.each(a,function(t){var e=t.dataZoomInfos;e[o]&&l[ge](r.allCoordIds,u)<0&&(delete e[o],t.count--)}),n(a);var h=a[u];h||(h=a[u]={coordId:u,dataZoomInfos:{},count:0},h.controller=i(t,r,h),h[Ge]=l.curry(s,t));var d=r[fe][pe]().clone();h.controller.rectProvider=function(){return d},c.createOrUpdate(h,Ge,r.throttleRate,"fixRate"),!h.dataZoomInfos[o]&&h.count++,h.dataZoomInfos[o]=r},unregister:function(t,i){var r=e(t);l.each(r,function(t){var e=t.dataZoomInfos;e[i]&&(delete e[i],t.count--)}),n(r)},shouldRecordRange:function(t,e){if(t&&"dataZoom"===t.type&&t.batch)for(var i=0,n=t.batch[Ne];n>i;i++)if(t.batch[i].dataZoomId===e)return!1;return!0},generateCoordId:function(t){return t.type+"\x00_"+t.id}};return f}),e("echarts/visual/visualSolution",[fi,hi,"./VisualMapping"],function(t){function e(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}var i=t(hi),n=t("./VisualMapping"),r=i.each,a={createVisualMappings:function(t,e,a){function o(){var t=function(){};t[si].__hidden=t[si];var e=new t;return e}var s={};return r(e,function(e){var l=s[e]=o();r(t[e],function(t,r){if(n.isValidType(r)){var o={type:r,visual:t};a&&a(o,e),l[r]=new n(o),r===ne&&(o=i.clone(o),o.type="colorAlpha",l.__hidden.__alphaForOpacity=new n(o))}})}),s},replaceVisualOption:function(t,n,r){var a;i.each(r,function(t){n.hasOwnProperty(t)&&e(n[t])&&(a=!0)}),a&&i.each(r,function(r){n.hasOwnProperty(r)&&e(n[r])?t[r]=i.clone(n[r]):delete t[r]})},applyVisual:function(t,e,r,a,o,s){function l(t){return r[Z](d,t)}function u(t,e){r.setItemVisual(d,t,e)}function c(t,i){d=null==s?t:i;for(var n=a.call(o,t),r=e[n],c=h[n],f=0,p=c[Ne];p>f;f++){var v=c[f];r[v]&&r[v].applyVisual(t,l,u)}}var h={};i.each(t,function(t){var i=n.prepareVisualTypes(e[t]);h[t]=i});var d;null==s?r.each(c,!0):r.each([s],c,!0)}};return a}),e("echarts/visual/VisualMapping",[fi,hi,ci,ie],function(t){function e(t){var e=t.pieceList;t.hasSpecialVisual=!1,p.each(e,function(e,i){e.originIndex=i,null!=e.visual&&(t.hasSpecialVisual=!0)})}function i(t){var e=t.categories,i=t.visual,n=t.categoryMap={};if(_(e,function(t,e){n[t]=e}),!p[Se](i)){var r=[];p[We](i)?_(i,function(t,e){var i=n[e];r[null!=i?i:b]=t}):r[b]=i,i=t.visual=r}for(var a=e[Ne]-1;a>=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function n(t,e){var i=t.visual,n=[];p[We](i)?_(i,function(t){n.push(t)}):null!=i&&n.push(i);var r={color:1,symbol:1};e||1!==n[Ne]||t.type in r||(n[1]=n[0]),t.visual=n}function r(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:h([0,1])}}function a(t,e){var i=this[Y].visual;return i[Math.round(g(e,[0,1],[0,i[Ne]-1],!0))]||{}}function o(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function u(t){var e=this[Y].visual;return e[this[Y].loop&&t!==b?t%e[Ne]:t]}function c(){return this[Y].visual[0]}function h(t){return{linear:function(e){return g(e,t,this[Y].visual,!0)},category:u,piecewise:function(e,i){var n=d.call(this,i);return null==n&&(n=g(e,t,this[Y].visual,!0)),n},fixed:c}}function d(t){var e=this[Y],i=e.pieceList;if(e.hasSpecialVisual){var n=w.findPieceIndex(t,i),r=i[n];if(r&&r.visual)return r.visual[this.type]}}function f(t,e,i){return t?i>=e:i>e}var p=t(hi),m=t(ci),g=t(ie)[y],_=p.each,x=p[We],b=-1,w=function(t){var r=t.mappingMethod,a=t.type,o=this[Y]=p.clone(t);this.type=a,this.mappingMethod=r,this._normalizeData=S[r];var s=M[a];this.applyVisual=s.applyVisual,this.getColorMapper=s.getColorMapper,this._doMap=s._doMap[r],"piecewise"===r?(n(o),e(o)):r===v?o.categories?i(o):n(o,!0):(p.assert("linear"!==r||o.dataExtent),n(o))};w[si]={constructor:w,mapValueToVisual:function(t){var e=this._normalizeData(t);return this._doMap(e,t)},getNormalizer:function(){return p.bind(this._normalizeData,this)}};var M=w.visualHandlers={color:{applyVisual:o("color"),getColorMapper:function(){var t=this[Y],e=p.map(t.visual,m.parse);return p.bind(t.mappingMethod===v?function(t,e){return!e&&(t=this._normalizeData(t)),u(this,t)}:function(t,i,n){var r=!!n;return!i&&(t=this._normalizeData(t)),n=m.fastMapToColor(t,e,n),r?n:p.stringify(n,"rgba")},this)},_doMap:{linear:function(t){return m.mapToColor(t,this[Y].visual)},category:u,piecewise:function(t,e){var i=d.call(this,e);return null==i&&(i=m.mapToColor(t,this[Y].visual)),i},fixed:c}},colorHue:r(function(t,e){return m.modifyHSL(t,e)}),colorSaturation:r(function(t,e){return m.modifyHSL(t,null,e)}),colorLightness:r(function(t,e){return m.modifyHSL(t,null,null,e)}),colorAlpha:r(function(t,e){return m.modifyAlpha(t,e)}),opacity:{applyVisual:o(ne),_doMap:h([0,1])},symbol:{applyVisual:function(t,e,i){var n=this.mapValueToVisual(t);if(p.isString(n))i(s,n);else if(x(n))for(var r in n)n.hasOwnProperty(r)&&i(r,n[r])},_doMap:{linear:a,category:u,piecewise:function(t,e){var i=d.call(this,e);return null==i&&(i=a.call(this,t)),i},fixed:c}},symbolSize:{applyVisual:o("symbolSize"),_doMap:h([0,1])}},S={linear:function(t){return g(t,this[Y].dataExtent,[0,1],!0)},piecewise:function(t){var e=this[Y].pieceList,i=w.findPieceIndex(t,e,!0);return null!=i?g(i,[0,e[Ne]-1],[0,1],!0):void 0},category:function(t){var e=this[Y].categories?this[Y].categoryMap[t]:t;return null==e?b:e},fixed:p.noop};return w.addVisualHandler=function(t,e){M[t]=e},w.isValidType=function(t){return M.hasOwnProperty(t)},w.eachVisual=function(t,e,i){p[We](t)?p.each(t,e,i):e.call(i,t)},w.mapVisual=function(t,e,i){var n,r=p[Se](t)?[]:p[We](t)?{}:(n=!0,null);return w.eachVisual(t,function(t,a){var o=e.call(i,t,a);n?r=o:r[a]=o}),r},w.retrieveVisuals=function(t){var e,i={};return t&&_(M,function(n,r){t.hasOwnProperty(r)&&(i[r]=t[r],e=!0)}),e?i:null},w.prepareVisualTypes=function(t){if(x(t)){var e=[];_(t,function(t,i){e.push(i)}),t=e}else{if(!p[Se](t))return[];t=t.slice()}return t.sort(function(t,e){return"color"===e&&"color"!==t&&0===t[ge]("color")?1:-1}),t},w.dependsOn=function(t,e){return"color"===e?!(!t||0!==t[ge](e)):t===e},w.findPieceIndex=function(t,e,i){function n(e,i){var n=Math.abs(e-t);a>n&&(a=n,r=i)}for(var r,a=1/0,o=0,s=e[Ne];s>o;o++){var u=e[o].value;if(null!=u){if(u===t)return o;i&&n(u,o)}}for(var o=0,s=e[Ne];s>o;o++){var c=e[o],h=c[l],d=c.close;if(h){if(h[0]===-1/0){if(f(d[1],t,h[1]))return o}else if(1/0===h[1]){if(f(d[0],h[0],t))return o}else if(f(d[0],h[0],t)&&f(d[1],t,h[1]))return o;i&&n(h[0],o),i&&n(h[1],o)}}return i?1/0===t?e[Ne]-1:t===-1/0?0:r:void 0},w}),e("echarts/component/helper/interactionMutex",[fi,h],function(t){function e(t){return t[i]||(t[i]={})}var i="\x00_ec_interaction_mutex",n={take:function(t,i,n){var r=e(t);r[i]=n},release:function(t,i,n){var r=e(t),a=r[i];a===n&&(r[i]=null)},isTaken:function(t,i){return!!e(t)[i]}};return t(h)[we]({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),n}),e("echarts/action/roamHelper",[fi],function(){var t={};return t.updateCenterAndZoom=function(t,e,i){var n=t.getZoom(),r=t.getCenter(),a=e.zoom,o=t[f](r);if(null!=e.dx&&null!=e.dy){o[0]-=e.dx,o[1]-=e.dy;var r=t.pointToData(o);t.setCenter(r)}if(null!=a){if(i){var s=i.min||0,l=i.max||1/0;a=Math.max(Math.min(n*a,l),s)/n}t.scale[0]*=a,t.scale[1]*=a;var u=t[re],c=(e.originX-u[0])*(a-1),h=(e.originY-u[1])*(a-1);u[0]-=c,u[1]-=h,t.updateTransform();var r=t.pointToData(o);t.setCenter(r),t.setZoom(a*n)}return{center:t.getCenter(),zoom:t.getZoom()}},t}),e("echarts/component/dataZoom/SelectZoomModel",[fi,"./DataZoomModel"],function(t){var e=t("./DataZoomModel");return e[He]({type:"dataZoom.select"})}),e("echarts/component/dataZoom/SelectZoomView",[fi,"./DataZoomView"],function(t){return t("./DataZoomView")[He]({type:"dataZoom.select"})}),e("echarts/component/visualMap/VisualMapModel",[fi,h,hi,di,"../../visual/visualDefault","../../visual/VisualMapping","../../visual/visualSolution",o,a],function(t){var e=t(h),i=t(hi),r=t(di),l=t("../../visual/visualDefault"),u=t("../../visual/VisualMapping"),c=t("../../visual/visualSolution"),d=u.mapVisual,f=t(o),p=u.eachVisual,v=t(a),g=i[Se],_=i.each,x=v.asc,b=v[y],M=i.noop,S=["#f6efa6","#d88273","#bf444c"],T=e[be]({type:"visualMap",dependencies:[Ee],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange",De,"controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:null,min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(t,e,i){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this[q](t,i)},optionUpdated:function(t,e){var i=this[Y];r[ei]||(i.realtime=!1),!e&&c.replaceVisualOption(i,t,this.replacableOptionKeys),this.textStyleModel=this[ri](de),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(t){var e=this.stateList;t=i.bind(t,this),this.controllerVisuals=c.createVisualMappings(this[Y].controller,e,t),this.targetVisuals=c.createVisualMappings(this[Y][De],e,t)},resetTargetSeries:function(){var t=this[Y],e=null==t[Ie];t[Ie]=e?[]:f.normalizeToArray(t[Ie]),e&&this[W][Ue](function(e,i){t[Ie].push(i)})},eachTargetSeries:function(t,e){i.each(this[Y][Ie],function(i){t.call(e,this[W].getSeriesByIndex(i))},this)},isTargetSeries:function(t){var e=!1;return this.eachTargetSeries(function(i){i===t&&(e=!0)}),e},formatValueText:function(t,e,n){function r(t){return t===u[0]?"min":t===u[1]?"max":(+t)[m](l)}var a,o,s=this[Y],l=s.precision,u=this.dataBound,c=s.formatter;return n=n||["<",">"],i[Se](t)&&(t=t.slice(),a=!0),o=e?t:a?[r(t[0]),r(t[1])]:r(t),i.isString(c)?c[Te]("{value}",a?o[0]:o)[Te]("{value2}",a?o[1]:o):i.isFunction(c)?a?c(t[0],t[1]):c(t):a?t[0]===u[0]?n[0]+" "+o[1]:t[1]===u[1]?n[1]+" "+o[0]:o[0]+" - "+o[1]:o},resetExtent:function(){var t=this[Y],e=x([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this[Y].dimension;return null!=e?e:t[w][Ne]-1},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){g(a.color)&&!t.inRange&&(t.inRange={color:a.color.slice()[n]()}),t.inRange=t.inRange||{color:S},_(this.stateList,function(e){var n=t[e];if(i.isString(n)){var r=l.get(n,"active",f);r?(t[e]={},t[e][n]=r):delete t[e]}},this)}function e(t,e,i){var n=t[e],r=t[i];n&&!r&&(r=t[i]={},_(n,function(t,e){if(u.isValidType(e)){var i=l.get(e,"inactive",f);null!=i&&(r[e]=i,"color"!==e||r.hasOwnProperty(ne)||r.hasOwnProperty("colorAlpha")||(r[ne]=[0,0]))}}))}function r(t){var e=(t.inRange||{})[s]||(t.outOfRange||{})[s],n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,r=this.get("inactiveColor");_(this.stateList,function(a){var o=this.itemSize,l=t[a];l||(l=t[a]={color:f?r:[r]}),null==l[s]&&(l[s]=e&&i.clone(e)||(f?"roundRect":["roundRect"])),null==l.symbolSize&&(l.symbolSize=n&&i.clone(n)||(f?o[0]:[o[0],o[0]])),l[s]=d(l[s],function(t){return"none"===t||"square"===t?"roundRect":t});var u=l.symbolSize;if(null!=u){var c=-1/0;p(u,function(t){t>c&&(c=t)}),l.symbolSize=d(u,function(t){return b(t,[0,c],[0,o[0]],!0)})}},this)}var a=this[Y],o={inRange:a.inRange,outOfRange:a.outOfRange},c=a[De]||(a[De]={}),h=a.controller||(a.controller={});i.merge(c,o),i.merge(h,o);var f=this.isCategory();t.call(this,c),t.call(this,h),e.call(this,c,"inRange","outOfRange"),r.call(this,h)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this[Y].categories},setSelected:M,getValueState:M});return T}),e("echarts/visual/visualDefault",[fi,hi],function(t){var e=t(hi),i={get:function(t,i,r){var a=e.clone((n[t]||{})[i]);return r&&e[Se](a)?a[a[Ne]-1]:a}},n={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}};return i}),e("echarts/component/visualMap/VisualMapView",[fi,hi,d,"../../util/format","../../util/layout",h,"../../visual/VisualMapping"],function(t){var e=t(hi),i=t(d),n=t("../../util/format"),r=t("../../util/layout"),a=t(h),o=t("../../visual/VisualMapping");return a[xe]({type:"visualMap",autoPositionValues:{left:1,right:1,top:1,bottom:1},init:function(t,e){this[W]=t,this.api=e,this.visualMapModel},render:function(t){return this.visualMapModel=t,t.get("show")===!1?void this.group[ve]():void this.doRender.apply(this,arguments)},renderBackground:function(t){var e=this.visualMapModel,r=n.normalizeCssArray(e.get("padding")||0),a=t[le]();t.add(new i.Rect({z2:-1,silent:!0,shape:{x:a.x-r[3],y:a.y-r[0],width:a.width+r[3]+r[1],height:a[Ye]+r[0]+r[2]},style:{fill:e.get(ti),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},getControllerVisual:function(t,i,n){function r(t){return c[t]}function a(t,e){c[t]=e}n=n||{};var l=n.forceState,u=this.visualMapModel,c={};if(i===s&&(c[s]=u.get("itemSymbol")),"color"===i){var h=u.get("contentColor");c.color=h}var d=u.controllerVisuals[l||u.getValueState(t)],f=o.prepareVisualTypes(d);return e.each(f,function(e){var s=d[e];n.convertOpacityToAlpha&&e===ne&&(e="colorAlpha",s=d.__alphaForOpacity),o.dependsOn(e,i)&&s&&s.applyVisual(t,r,a)}),c[i]},positionGroup:function(t){var e=this.visualMapModel,i=this.api;r.positionGroup(t,e.getBoxLayoutParams(),{width:i[ni](),height:i[ii]()})},doRender:e.noop})}),e("echarts/component/visualMap/helper",[fi,"../../util/layout"],function(t){var e=t("../../util/layout"),i={getItemAlign:function(t,i,n){var r=t[Y],a=r.align;if(null!=a&&"auto"!==a)return a;for(var o={width:i[ni](),height:i[ii]()},s="horizontal"===r.orient?1:0,l=[["left","right","width"],["top",$e,Ye]],u=l[s],c=[0,null,10],h={},d=0;3>d;d++)h[l[1-s][d]]=c[d],h[u[d]]=2===d?n[0]:r[u[d]];var f=[["x","width",3],["y",Ye,0]][s],p=e[se](h,o,r.padding);return u[(p.margin[f[2]]||0)+p[f[0]]+.5*p[f[1]]<.5*o[f[1]]?0:1]}};return i}),e("echarts/component/visualMap/PiecewiseModel",[fi,"./VisualMapModel",hi,"../../visual/VisualMapping"],function(t){function e(t,e){var i=t.inverse;("vertical"===t.orient?!i:i)&&e[n]()}function i(t){function e(t,i,n){return n=n||0,t[l][n]<i[l][n]||t[l][n]===i[l][n]&&(+t.close[n]>i.close[n]||e(t,i,1))}t.sort(function(t,i){return e(t,i)?-1:1});for(var i=-1/0,n=0;n<t[Ne];n++)for(var r=t[n][l],a=t[n].close,o=0;2>o;o++)r[o]<i&&(r[o]=i,a[o]=1-o),i=r[o]}var r=t("./VisualMapModel"),a=t(hi),o=t("../../visual/VisualMapping"),s=r[He]({type:"visualMap.piecewise",defaultOption:{selected:null,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0},optionUpdated:function(t,e){s.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetTargetSeries(),this.resetExtent();var i=this._mode=this._determineMode();u[this._mode].call(this),this._resetSelected(t,e);var n=this[Y].categories;this.resetVisual(function(t,e){"categories"===i?(t.mappingMethod=v,t.categories=a.clone(n)):(t.dataExtent=this[K](),t.mappingMethod="piecewise",t.pieceList=a.map(this._pieceList,function(t){var t=a.clone(t);return"inRange"!==e&&(t.visual=null),t}))})},_resetSelected:function(t,e){var i=this[Y],n=this._pieceList,r=(e?i:t).selected||{};if(i.selected=r,a.each(n,function(t){var e=this.getSelectedMapKey(t);e in r||(r[e]=!0)},this),"single"===i.selectedMode){var o=!1;a.each(n,function(t){var e=this.getSelectedMapKey(t);r[e]&&(o?r[e]=!1:o=!0)},this)}},getSelectedMapKey:function(t){return"categories"===this._mode?t.value+"":t.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var t=this[Y];return t.pieces&&t.pieces[Ne]>0?"pieces":this[Y].categories?"categories":"splitNumber"},setSelected:function(t){this[Y].selected=a.clone(t)},getValueState:function(t){var e=o.findPieceIndex(t,this._pieceList);return null!=e&&this[Y].selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],r=i[qe]();r.each(this.getDataDimension(r),function(e,i){var r=o.findPieceIndex(e,this._pieceList);r===t&&n.push(i)},!0,this),e.push({seriesId:i.id,dataIndex:n})},this),e},getRepresentValue:function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var i=t[l]||[];e=(i[0]+i[1])/2}return e},getStops:function(t,e){function i(t){n.push(t),t.color=e(r,r.getRepresentValue(t),t.valueState)}var n=[],r=this;if(this.isTargetSeries(t)){var o=-1/0;a.each(this._pieceList,function(t){var e=t[l];e&&(e[0]>o&&i({interval:[o,e[0]],valueState:"outOfRange"}),i({interval:e.slice(),valueState:this.getValueState((e[0]+e[1])/2)}),o=e[1])},this)}return n}}),u={splitNumber:function(){var t=this[Y],e=this._pieceList,n=t.precision,r=this[K](),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var s=(r[1]-r[0])/o;+s[m](n)!==s&&5>n;)n++;t.precision=n,s=+s[m](n);for(var u=0,c=r[0];o>u;u++,c+=s){var h=u===o-1?r[1]:c+s;e.push({index:u,interval:[c,h],close:[1,1]})}i(e),a.each(e,function(t){t.text=this.formatValueText(t[l])},this)},categories:function(){var t=this[Y];a.each(t.categories,function(t){this._pieceList.push({text:this.formatValueText(t,!0),value:t})},this),e(t,this._pieceList)},pieces:function(){var t=this[Y],n=this._pieceList;a.each(t.pieces,function(t,e){a[We](t)||(t={value:t});var i={text:"",index:e};if(null!=t.label&&(i.text=t.label),t.hasOwnProperty("value")){var r=i.value=t.value;i[l]=[r,r],i.close=[1,1]}else{for(var s=i[l]=[],u=i.close=[0,0],c=[1,0,1],h=[-1/0,1/0],d=[],f=0;2>f;f++){for(var p=[["gte","gt","min"],["lte","lt","max"]][f],v=0;3>v&&null==s[f];v++)s[f]=t[p[v]],u[f]=c[v],d[f]=2===v;null==s[f]&&(s[f]=h[f])}d[0]&&1/0===s[1]&&(u[0]=0),d[1]&&s[0]===-1/0&&(u[1]=0),s[0]===s[1]&&u[0]&&u[1]&&(i.value=s[0])}i.visual=o.retrieveVisuals(t),n.push(i)},this),e(t,n),i(n),a.each(n,function(t){var e=t.close,i=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t[l],!1,i)},this)}};return s}),e("echarts/component/visualMap/PiecewiseView",[fi,"./VisualMapView",hi,d,"../../util/symbol","../../util/layout","./helper"],function(t){var e=t("./VisualMapView"),i=t(hi),r=t(d),a=t("../../util/symbol"),o=t("../../util/layout"),l=t("./helper"),u=e[He]({type:"visualMap.piecewise",doRender:function(){function t(t){var o=t.piece,s=new r.Group;s.onclick=i.bind(this._onItemClick,this,o),this._enableHoverLink(s,t.indexInModelPieceList);var d=n.getRepresentValue(o);if(this._createItemSymbol(s,d,[0,0,h[0],h[1]]),f){var p=this.visualMapModel.getValueState(d);s.add(new r.Text({style:{x:"right"===c?-a:h[0]+a,y:h[1]/2,text:o.text,textVerticalAlign:"middle",textAlign:c,textFont:l,fill:u,opacity:"outOfRange"===p?.5:1}}))}e.add(s)}var e=this.group;e[ve]();var n=this.visualMapModel,a=n.get("textGap"),s=n.textStyleModel,l=s[ce](),u=s[ue](),c=this._getItemAlign(),h=n.itemSize,d=this._getViewData(),f=!d.endsText,p=!f;p&&this._renderEndsText(e,d.endsText[0],h),i.each(d.viewPieceList,t,this),p&&this._renderEndsText(e,d.endsText[1],h),o.box(n.get("orient"),e,n.get("itemGap")),this.renderBackground(e),this.positionGroup(e)},_enableHoverLink:function(t,e){function n(t){var i=this.visualMapModel;i[Y].hoverLink&&this.api[Ge]({type:t,batch:i.findTargetDataIndices(e)})}t.on(Re,i.bind(n,this,"highlight")).on(ze,i.bind(n,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t[Y];if("vertical"===e.orient)return l.getItemAlign(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i){if(e){var n=new r.Group,a=this.visualMapModel.textStyleModel;n.add(new r.Text({style:{x:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:"center",text:e,textFont:a[ce](),fill:a[ue]()}})),t.add(n)}},_getViewData:function(){var t=this.visualMapModel,e=i.map(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),r=t.get("text"),a=t.get("orient"),o=t.get("inverse");return("horizontal"===a?o:!o)?e[n]():r&&(r=r.slice()[n]()),{viewPieceList:e,endsText:r}},_createItemSymbol:function(t,e,i){t.add(a.createSymbol(this.getControllerVisual(e,s),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,n=e[Y],r=i.clone(n.selected),a=e.getSelectedMapKey(t);"single"===n.selectedMode?(r[a]=!0,i.each(r,function(t,e){r[e]=e===a})):r[a]=!r[a],this.api[Ge]({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:r})}});return u}),e("zrender",["zrender/zrender"],function(t){return t}),e("echarts",["echarts/echarts"],function(t){return t});var pi=t("echarts");return pi.graphic=t("echarts/util/graphic"),pi.number=t("echarts/util/number"),pi.format=t("echarts/util/format"),t("echarts/chart/bar"),t("echarts/chart/line"),t("echarts/chart/pie"),t("echarts/chart/map"),t("echarts/component/grid"),t("echarts/component/geo"),t("echarts/component/title"),t("echarts/component/legend"),t("echarts/component/tooltip"),t("echarts/component/markPoint"),t("echarts/component/dataZoom"),t("echarts/component/visualMap"),t("echarts/component/toolbox"),t("zrender/vml/vml"),pi});
(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['exports', 'echarts'], factory);
    } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
        // CommonJS
        factory(exports, require('echarts'));
    } else {
        // Browser globals
        factory({}, root.echarts);
    }
}(this, function (exports, echarts) {
    var log = function (msg) {
        if (typeof console !== 'undefined') {
            console && console.error && console.error(msg);
        }
    }
    if (!echarts) {
        log('ECharts is not Loaded');
        return;
    }
    if (!echarts.registerMap) {
        log('ECharts Map is not loaded')
        return;
    }
    echarts.registerMap('china', {"type":"FeatureCollection","features":[{"id":"710000","geometry":{"type":"MultiPolygon","coordinates":[["@@°Ü¯Û","@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚänÜƤɊĂǀĆĴĤǊŨxĚĮǂƺòƌâÔ®ĮXŦţƸZûÐƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃǋƏďíåɛGɉ¿IċããF¥ĘWǬÏĶñÄ","@@\\p|WoYG¿¥Ij@","@@¡@V^RqBbAnTXeQr©C","@@ÆEEkWqë I"]],"encodeOffsets":[[[122886,24033],[123335,22980],[122375,24193],[122518,24117],[124427,22618]]]},"properties":{"cp":[121.509062,25.044332],"name":"台湾","childNum":5}},{"id":"130000","geometry":{"type":"MultiPolygon","coordinates":[["@@\\aM`Ç½ÓnUKĜēs¤­©yrý§uģcJ»eIP]ªrºc_ħ²G¼s`jÎŸnüsÂľP","@@U`Ts¿mÄ","@@FOhđ©OiÃ`ww^ÌkÑH«ƇǤŗĺtFu{Z}Ö@U´ʚLg®¯Oı°Ãw ^VbÉsmAê]]w§RRl£ŭuwNÁ`ÇFēÝčȻuT¡Ĺ¯Õ¯sŗő£YªhVƍ£ƅnëYNgq¼ś¿µı²UºÝUąąŖóxV@tƯJ]eR¾fe|rHA|h~Ėƍl§ÏjVë` ØoÅbbx³^zÃĶ¶Sj®AyÂhðk`«PËµEFÛ¬Y¨Ļrõqi¼Wi°§Ð±²°`[À|ĠO@ÆxO\\ta\\p_Zõ^û{ġȧXýĪÓjùÎRb^Î»j{íděYfíÙTymńŵōHim½éŅ­aVcř§ax¹XŻácWU£ôãºQ¨÷Ñws¥qEHÙ|šYQoŕÇyáĂ£MÃ°oťÊP¡mWO¡v{ôvîēÜISpÌhp¨ jdeŔQÖjX³àĈ[n`Yp@UcM`RKhEbpŞlNut®EtqnsÁgAiúoHqCXhfgu~ÏWP½¢G^}¯ÅīGCÑ^ãziMáļMTÃƘrMc|O_¯Ŏ´|morDkO\\mĆJfl@cĢ¬¢aĦtRıÒXòë¬WP{ŵǫƝīÛ÷ąV×qƥV¿aȉd³BqPBmaËđŻģmÅ®V¹d^KKonYg¯XhqaLdu¥Ípǅ¡KąÅkĝęěhq}HyÃ]¹ǧ£Í÷¿qágPmoei¤o^á¾ZEY^Ný{nOl±Í@Mċèk§daNaÇį¿]øRiiñEūiǱàUtėGyl}ÓM}jpEC~¡FtoQiHkk{ILgĽxqÈƋÄdeVDJj£J|ÅdzÂFt~KŨ¸IÆv|¢r}èonb}`RÎÄn°ÒdÞ²^®lnÐèĄlðÓ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcŋ`ZÔ¶êqvFÆN®ĆTH®¦O¾IbÐã´BĐɢŴÆíȦpĐÞXR·nndO¤OÀĈƒ­QgµFo|gȒęSWb©osx|hYhgŃfmÖĩnºTÌSp¢dYĤ¶UĈjlǐpäðëx³kÛfw²Xjz~ÂqbTÑěŨ@|oMzv¢ZrÃVw¬ŧĖ¸f°ÐTªqs{S¯r æÝl¼ÖĞ ǆiGĘJ¼lr}~K¨ŸƐÌWö¼Þ°nÞoĦL|C~D©|q]SvKÑcwpÏÏĿćènĪWlĄkT}¬Tp~®Hgd˒ĺBVtEÀ¢ôPĎƗè@~kü\\rÊĔÖæW_§¼F´©òDòjYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkvGpuARhÞÆǶgĘTǼƹS£¨¡ù³ŘÍ]¿ÂyôEP xX¶¹ÜO¡gÚ¡IwÃé¦ÅBÏ|Ç°N«úmH¯âbęU~xĈbȒ{^xÖlD¸dɂ~"]],"encodeOffsets":[[[120023,41045],[121616,39981],[122102,42307]]]},"properties":{"cp":[114.502461,38.045474],"name":"河北","childNum":3}},{"id":"140000","geometry":{"type":"Polygon","coordinates":["@@ħÜ_ªlìwGkÛÃǏokćiµVZģ¡coTSË¹ĪmnÕńehZg{gtwªpXaĚThȑp{¶Eh®RćƑP¿£PmcªaJyý{ýȥoÅîɡųAďä³aÏJ½¥PG­ąSM­sWz½µÛYÓŖgxoOkĒCo­Èµ]¯_²ÕjāK~©ÅØ^ÔkïçămÏk]­±cÝ¯ÑÃmQÍ~_apm~ç¡qu{JÅŧ·Ls}EyÁÆcI{¤IiCfUcƌÃp§]ě«vD@¡SÀµMÅwuYY¡DbÑc¡h×]nkoQdaMç~eDÛtT©±@¥ù@É¡ZcW|WqOJmĩl«ħşvOÓ«IqăV¥D[mI~Ó¢cehiÍ]Ɠ~ĥqX·eƷn±}v[ěďŕ]_œ`¹§ÕōIo©b­s^}Ét±ū«³p£ÿ¥WÑxçÁ«h×u×¥ř¾dÒ{ºvĴÎêÌɊ²¶ü¨|ÞƸµȲLLúÉƎ¤ϊęĔV`_bªS^|dzY|dz¥pZbÆ£¶ÒK}tĦÔņƠPYznÍvX¶Ěn ĠÔzý¦ª÷ÑĸÙUȌ¸dòÜJð´ìúNM¬XZ´¤ŊǸ_tldI{¦ƀðĠȤ¥NehXnYGR° ƬDj¬¸|CĞKqºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBÊTĞHƘÁĪËĖĴŞȀÆÿȄlŤĒötÎ½î¼ĨXh|ªM¤ÐzÞĩÒSrao³"],"encodeOffsets":[[117016,41452]]},"properties":{"cp":[112.549248,37.857014],"name":"山西","childNum":1}},{"id":"150000","geometry":{"type":"MultiPolygon","coordinates":[["@@ǪƫÌÛMĂ[`ÕCn}¶Vcês¯PqFB|S³C|kñHdiÄ¥sŉÅPóÑÑE^ÅPpy_YtShQ·aHwsOnŉÃs©iqjUSiº]ïW«gW¡ARëśĳĘů`çõh]y»ǃǛҤxÒm~zf}pf|ÜroÈzrKÈĵSƧż؜Ġu~è¬vîS¼ĂhĖMÈÄw\\fŦ°W ¢¾luŸDw\\Ŗĝ","@@GVu»Aylßí¹ãe]Eāò³C¹ð¾²iÒAdkò^P²CǜңǄ z¼g^èöŰ_Ĳĕê}gÁnUI«m]jvV¼euhwqAaW_µj»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáGOUÛOB±XkÅ¹£k|e]olkVÍ¼ÕqtaÏõjgÁ£§U^RLËnX°ÇBz^~wfvypV ¯ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyxþp]ÉvïèvƀnÂĴÖ@V~Ĉ³MEĸÅĖtējyÄDXÄxGQuv_i¦aBçw˛wD©{tāmQ{EJ§KPśƘƿ¥@sCTÉ}ɃwƇy±gÑ}T[÷kÐç¦«SÒ¥¸ëBX½HáÅµÀğtSÝÂa[ƣ°¯¦Pï¡]£ġÒk®G²èQ°óMq}EóƐÇ\\@áügQÍu¥FTÕ¿Jû]|mvāÎYua^WoÀa·­ząÒot×¶CLƗi¯¤mƎHǊ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶¿A[¡{d×uQAMxVvMOmăl«ct[wº_ÇÊjbÂ£ĦS_éQZ_lwgOiýe`YYJq¥IÁǳ£ÙË[ÕªuƏ³ÍTs·bÁĽäė[b[ŗfãcn¥îC¿÷µ[ŏÀQ­ōĉm¿Á^£mJVmL[{Ï_£F¥Ö{ŹA}×Wu©ÅaųĳƳhB{·TQqÙIķËZđ©Yc|M¡LeVUóK_QWk_ĥ¿ãZ»X\\ĴuUèlG®ěłTĠğDŃGÆÍz]±ŭ©Å]ÅÐ}UË¥©TċïxgckfWgi\\ÏĒ¥HkµEë{»ÏetcG±ahUiñiWsɁ·cCÕk]wȑ|ća}wVaĚá G°ùnM¬¯{ÈÐÆA¥ÄêJxÙ¢hP¢ÛºµwWOóFÁz^ÀŗÎú´§¢T¤ǻƺSėǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇqZñiñC³ª»E`¨åXēÕqÉû[l}ç@čƘóO¿¡FUsAʽīccocÇS}£IS~ălkĩXçmĈŀÐoÐdxÒuL^T{r@¢ÍĝKén£kQyÅõËXŷƏL§~}kq»IHėǅjĝ»ÑÞoå°qTt|r©ÏS¯·eŨĕx«È[eM¿yupN~¹ÏyN£{©għWí»Í¾səšǅ_ÃĀɗ±ąĳĉʍŌŷSÉA±åǥɋ@ë£R©ąP©}ĹªƏj¹erLDĝ·{i«ƫC½ÉshVzGS|úþXgp{ÁX¿ć{ƱȏñZáĔyoÁhA}ŅĆfdŉ_¹Y°ėǩÑ¡H¯¶oMQqð¡Ë|Ñ`ƭŁX½·óÛxğįÅcQs«tȋǅFù^it«Č¯[hAi©á¥ÇĚ×l|¹y¯Kȝqgů{ñǙµïċĹzŚȭ¶¡oŽäÕG\\ÄT¿Òõr¯LguÏYęRƩɷŌO\\İÐ¢æ^Ŋ ĲȶȆbÜGĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľ]ėl¥ËĭûÁėéV©±ćn©­ȇÍq¯½YÃÔŉÉNÑÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱàưN¢ƔÊuľýľώȪƺɂļxZĈ}ÌŉŪĺœĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ç¼ȳÐUfdIxÿ\\G zâɏÙOº·pqy£@qþ@Ǟ˽IBäƣzsÂZÁàĻdñ°ŕzéØűzșCìDȐĴĺf®Àľưø@ɜÖÞKĊŇƄ§͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘǊ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKǳͲOðÏȆƘ¼CϚǚ࢚˼ФÔ¤ƌĞ̪Qʤ´¼mȠJˀƲÀɠmɆǄĜƠ´ǠN~ʢĜ¶ƌĆĘźʆȬ˪ĚĒ¸ĞGȖƴƀj`ĢçĶāàŃºēĢĖćYÀŎüôQÐÂŎŞǆŞêƖoˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^ªƂ`ªt¾äƚêĦĀ¼ÐĔǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDÄ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°ǆdÀÉ_ĸdîàŎjÊêTĞªŌŜWÈ|tqĢUB~´°ÎFCU¼pĀēƄN¦¾O¶łKĊOjĚj´ĜYp{¦SĚÍ\\T×ªV÷Ší¨ÅDK°ßtŇĔK¨ǵÂcḷ̌ĚǣȄĽFlġUĵŇȣFʉɁMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFxúQEr´Wrh¤Ɛ \\talĈDJÜ|[Pll̚¸ƎGú´P¬W¦^¦H]prRn|or¾wLVnÇIujkmon£cX^Bh`¥V¦U¤¸}xRj[^xN[~ªxQ[`ªHÆÂExx^wN¶Ê|¨ìMrdYpoRzNyÀDs~bcfÌ`L¾n|¾T°c¨È¢ar¤`[|òDŞĔöxElÖdHÀI`Ď\\Àì~ÆR¼tf¦^¢ķ¶eÐÚMptgjɡČÅyġLûŇV®ÄÈƀĎ°P|ªVVªj¬ĚÒêp¬E|ŬÂ_~¼rƐK f{ĘFĒƌXưăkÃĄ}nµo×q£ç­kX{uĩ«āíÓUŅÝVUŌ]Ť¥lyň[oi{¦LĸĦ^ôâJ¨^UZðÚĒL¿Ìf£K£ʺoqNwğc`uetOj×°KJ±qÆġmĚŗos¬qehqsuH{¸kH¡ÊRǪÇƌbȆ¢´äÜ¢NìÉʖ¦â©Ɨؗ"]],"encodeOffsets":[[[128500,52752],[127089,51784]]]},"properties":{"cp":[111.670801,40.818311],"name":"内蒙古","childNum":2}},{"id":"210000","geometry":{"type":"MultiPolygon","coordinates":[["@@L@@s]","@@MnNm","@@dc","@@eÀC@b","@@fXwkbrÄ`qg","@@^jtWQ","@@~ Y[c","@@I`ĖN^_¿ZÁM","@@Ïxǌ{q_×^Gigp","@@iX¶BY","@@YZ","@@L_yG`b","@@^WqCTZ","@@\\[§t|]","@@m`p[","@@@é^BntaÊU]x ¯ÄPĲ­°hʙK³VÕ@Y~|EvĹsÇ¦­L^pÃ²ŸÒG Ël]xxÄ_fT¤Ď¤cPC¨¸TVjbgH²sdÎdHt`B²¬GJję¶[ÐhjeXdlwhðSČ¦ªVÊÏÆZÆŶ®²^ÎyÅHńĚDMħĜŁH­kçvV[ĳ¼WYÀäĦ`XlR`ôLUVfK¢{NZdĒªYĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~źB|¦ÕE¤Ð`\\|KUnnI]¤ÀÂĊnŎR®Ő¿¶\\ÀøíDm¦ÎbŨabaĘ\\ľãÂ¸atÎSƐ´©v\\ÖÚÌǴ¤Â¨JKrZ_ZfjþhPkx`YRIjJcVf~sCN¤ EhæmsHy¨SðÑÌ\\\\ĐRÊwS¥fqŒßýáĞÙÉÖ[^¯ǤŲê´\\¦¬ĆPM¯£»uïpùzExanµyoluqe¦W^£ÊL}ñrkqWňûPUP¡ôJoo·U}£[·¨@XĸDXm­ÛÝºGUCÁª½{íĂ^cjk¶Ã[q¤LÉö³cux«|Zd²BWÇ®Yß½ve±ÃCý£W{Ú^q^sÑ·¨ËMr¹·C¥GDrí@wÕKţÃ«V·i}xËÍ÷i©ĝɝǡ]{c±OW³Ya±_ç©HĕoƫŇqr³Lys[ñ³¯OSďOMisZ±ÅFC¥Pq{Ã[Pg}\\¿ghćOk^ĩÃXaĕËĥM­oEqqZûěŉ³F¦oĵhÕP{¯~TÍlªNßYÐ{Ps{ÃVUeĎwk±ŉVÓ½ŽJãÇÇ»Jm°dhcÀffdF~ĀeĖd`sx² ®EĦ¦dQÂd^~ăÔH¦\\LKpĄVez¤NP ǹÓRÆąJSh­a[¦´ÂghwmBÐ¨źhI|VV|p] Â¼èNä¶ÜBÖ¼L`¼bØæKVpoúNZÞÒKxpw|ÊEMnzEQIZZNBčÚFÜçmĩWĪñtÞĵÇñZ«uD±|ƏlǗw·±PmÍada CLǑkùó¡³Ï«QaċÏOÃ¥ÕđQȥċƭy³ÁA"]],"encodeOffsets":[[[123686,41445],[126019,40435],[124393,40128],[126117,39963],[125322,40140],[126686,40700],[126041,40374],[125584,40168],[125509,40217],[125453,40165],[125362,40214],[125280,40291],[125774,39997],[125976,40496],[125822,39993],[122731,40949]]]},"properties":{"cp":[123.429096,41.796767],"name":"辽宁","childNum":16}},{"id":"220000","geometry":{"type":"Polygon","coordinates":["@@ñr½ÉKāGÁ¤ia ÉÈ¹`\\xs¬dĆkNnuNUwNx¶c¸|\\¢GªóĄ~RãÖÎĢùđŴÕhQxtcæëSɽŉíëǉ£ƍG£nj°KƘµDsØÑpyĆ¸®¿bXp]vbÍZuĂ{n^IüÀSÖ¦EvRÎûh@â[ƏÈô~FNr¯ôçR±­HÑlĢ^¤¢OðætxsŒ]ÞÁTĠs¶¿âÆGW¾ìA¦·TÑ¬è¥ÏÐJ¨¼ÒÖ¼ƦɄxÊ~StD@Ă¼Ŵ¡jlºWvÐzƦZÐ²CH AxiukdGgetqmcÛ£Ozy¥cE}|¾cZk¿uŐã[oxGikfeäT@SUwpiÚFM©£è^Ú`@v¶eňf heP¶täOlÃUgÞzŸU`l}ÔÆUvØ_Ō¬Öi^ĉi§²ÃB~¡ĈÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYxƘDVÇĺĿg¿cwÅ\\¹¥Yĭl¤OvLjM_a W`zļMž·\\swqÝSAqŚĳ¯°kRē°wx^ĐkǂÒ\\]nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°G³¼XÀ¤¹i´o¤ŃÈ`ÌǲÄUĞd\\iÖmÈBĤÜɲDEh LG¾ƀÄ¾{WaYÍÈĢĘÔRîĐj}ÇccjoUb½{h§Ǿ{KƖµÎ÷GĄØŜçưÌs«lyiē«`å§H¥Ae^§GK}iã\\c]v©ģZmÃ|[M}ģTɟĵÂÂ`ÀçmFK¥ÚíÁbX³ÌQÒHof{]ept·GŋĜYünĎųVY^ydõkÅZW«WUa~U·SbwGçǑiW^qFuNĝ·EwUtW·Ýďæ©PuqEzwAVXRãQ`­©GYYhcUGorBd}ģÉb¡·µMicF«Yƅ»é\\ɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_Ã½L¡ûsT\\rke\\PnwAKy}ywdSefµ]UhĿD@mÿvaÙNSkCuncÿ`lWėVâ¦÷~^fÏ~vwHCį`xqT­­lW«ï¸skmßEGqd¯R©Ý¯¯S\\cZ¹iűƏCuƍÓXoR}M^o£R}oªU­FuuXHlEÅÏ©¤ßgXþ¤D²ÄufàÀ­XXÈ±Ac{Yw¬dvõ´KÊ£\\rµÄlidā]|î©¾DÂVH¹Þ®ÜWnCķ W§@\\¸~¤Vp¸póIO¢VOŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð¼¤ N°ąO¥«³[éǣű]°Õ\\ÚÊĝôîŇÔaâBYlďQ[ Ë[ïÒ¥RI|`j]P"],"encodeOffsets":[[126831,44503]]},"properties":{"cp":[125.3245,43.886841],"name":"吉林","childNum":1}},{"id":"230000","geometry":{"type":"MultiPolygon","coordinates":[["@@UµNÿ¥īèçHÍøƕ¶Lǽ|g¨|a¾pVidd~ÈiíďÓQġėÇZÎXb½|ſÃH½KFgɱCģÛÇAnjÕc[VĝǱÃËÇ_ £ń³pj£º¿»WH´¯U¸đĢmtĜyzzNN|g¸÷äűÑ±ĉā~mq^[ǁÑďlw]¯xQĔ¯l°řĴrBÞTxr[tŽ¸ĻN_yX`biNKuP£kZĮ¦[ºxÆÀdhĹŀUÈƗCwáZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFć}¢A±Äj¨]ĊÕjŋ«×`VuÓÅ~_kŷVÝyhVkÄãPsOµfgeŇµf@u_Ù ÙcªNªÙEojVxT@ãSefjlwH\\pŏäÀvlY½d{F~¦dyz¤PÜndsrhfHcvlwjF£G±DÏƥYyÏu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|C˜zxAè¥bfudTrFWÁ¹Am|ĔĕsķÆF´N}ćUÕ@Áĳſmuçuð^ÊýowFzØÎĕNőǏȎôªÌŒǄàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°Uzouxe]}AyÈW¯ÌmKQ]Īºif¸ÄX|sZt|½ÚUÎ lk^p{f¤lºlÆW A²PVÜPHÊâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi`¶bXrBgxfv»uUi^v~J¬mVp´£´VWrnP½ì¢BX¬hðX¹^TjVriªjtŊÄmtPGx¸bgRsT`ZozÆO]ÒFôÒOÆŊvÅpcGêsx´DR{AEOr°x|íb³Wm~DVjºéNNËÜ˛ɶ­GxŷCSt}]ûōSmtuÇÃĕNāg»íT«u}ç½BĵÞʣ¥ëÊ¡MÛ³ãȅ¡ƋaǩÈÉQG¢·lG|tvgrrf«ptęŘnÅĢrI²¯LiØsPf_vĠdxM prʹL¤¤eËÀđKïÙVY§]Ióáĥ]ķK¥j|pŇ\\kzţ¦šnņäÔVĂîĪ¬|vW®l¤èØrxm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄĄ»ƢjȦOǺ¨ìSŖÆƬyQv`cwZSÌ®ü±Ǆ]ŀç¬B¬©ńzƺŷɄeeOĨSfm ĊƀP̎ēz©ĊÄÕÊmgÇsJ¥ƔŊśæÎÑqv¿íUOµªÂnĦÁ_½ä@êí£P}Ġ[@gġ}gɊ×ûÏWXá¢užƻÌsNÍ½ƎÁ§čŐAēeL³àydl¦ĘVçŁpśǆĽĺſÊQíÜçÛġÔsĕ¬Ǹ¯YßċġHµ ¡eå`ļrĉŘóƢFìĎWøxÊkƈdƬv|I|·©NqńRŀ¤éeŊŀàŀU²ŕƀBQ£Ď}L¹Îk@©ĈuǰųǨÚ§ƈnTËÇéƟÊcfčŤ^XmHĊĕË«W·ċëx³ǔķÐċJāwİ_ĸȀ^ôWr­°oú¬ĦŨK~ȰCĐ´Ƕ£fNÎèâw¢XnŮeÂÆĶ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®ØCÔ ŬGƠƦYĜĘÜƬDJg_ͥœ@čŅĻA¶¯@wÎqC½Ĉ»NăëKďÍQÙƫ[«ÃígßÔÇOÝáWñuZ¯ĥŕā¡ÑķJu¤E å¯°WKÉ±_d_}}vyõu¬ï¹ÓU±½@gÏ¿rÃ½DgCdµ°MFYxw¿CG£Rƛ½Õ{]L§{qqą¿BÇƻğëܭǊË|c²}Fµ}ÙRsÓpg±QNqǫŋRwŕnéÑÉK«SeYRŋ@{¤SJ}D Ûǖ֍]gr¡µŷjqWÛham³~S«Ü[","@@ƨĶTLÇyqpÇÛqe{~oyen}s`qiXGù]Ëp½©lÉÁp]Þñ´FĂ^fäîºkàz¼BUv¬D"]],"encodeOffsets":[[[134456,44547],[127123,51780]]]},"properties":{"cp":[126.642464,45.756967],"name":"黑龙江","childNum":2}},{"id":"320000","geometry":{"type":"Polygon","coordinates":["@@Õg^vÁbnÀ`Jnĝ¬òM¶ĘTÖŒbe¦¦{¸ZâćNp©Hp|`mjhSEb\\afv`sz^lkljÄtg¤D­¾X¿À|ĐiZȀåB·î}GL¢õcßjayBFµÏC^ĭcÙt¿sğH]j{s©HM¢QnDÀ©DaÜÞ·jgàiDbPufjDk`dPOîhw¡ĥ¥GP²ĐobºrYî¶aHŢ´ ]´rılw³r_{£DB_Ûdåuk|Ũ¯F Cºyr{XFye³Þċ¿ÂkĭB¿MvÛpm`rÚã@Ę¹hågËÖƿxnlč¶Åì½Ot¾dJlVJĂǀŞqvnO^JZż·Q}êÍÅmµÒ]ƍ¦Dq}¬R^èĂ´ŀĻĊIÔtĲyQŐĠMNtR®òLhĚs©»}OÓGZz¶A\\jĨFäOĤHYJvÞHNiÜaĎÉnFQlNM¤B´ĄNöɂtpŬdZÅglmuÇUšŞÚb¤uŃJŴu»¹ĄlȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Yrřl¥i`ã__¢ćSÅr[Çq^ùzWmOĈaŐÝɞï²ʯʊáĘĳĒǭPħ͍ôƋÄÄÍīçÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıǅ_k}¢m[ÝóDµ¡RLčiXyÅNïă¡¸iĔÏNÌķoıdōîåŤûHcs}~Ûwbù¹£¦ÓCtOPrE^ÒogĉIµÛÅʹK¤½phMú`mR¸¦PƚgÉLRs`£¯ãhD¨|³¤C"],"encodeOffsets":[[121451,32518]]},"properties":{"cp":[118.767413,32.041544],"name":"江苏","childNum":1}},{"id":"330000","geometry":{"type":"MultiPolygon","coordinates":[["@@jX^n","@@sfdM","@@qP\\xz[_i","@@o\\VzRZ}mECy","@@R¢FX}°[m]","@@Cb\\}","@@e|v\\laus","@@v~s{","@@QxÂF©}","@@¹nvÞs©m","@@rQgYIh","@@bi«ZX","@@p[}ILd","@@À¿|","@@¹dnb","@@rS}[Kl","@@g~h}","@@FlCk","@@ůTG°ĄLHm°UF","@@OdRe","@@v[u\\","@@FjâL~wyoo~sµLZ","@@¬e¹aH","@@\\nÔ¡q]L³ë\\ÿ®QÌ","@@ÊA­©]ª","@@Kxv{­","@@@hlIk_","@@pWcrxp","@@Md|_iA","@@¢X£½z\\ðpN","@@hlÜ[LykAvyfw^E ","@@fp¤MusH","@@®_ma~LÁ¬`","@@@°¡mÛGĕ¨§Ianá[ýƤjfæÐNäGp","@@iMt\\","@@Zc[b","@@X®±GrÆ°Zæĉm","@@Z~dOSo|A¿qZv","@@@`EN£p","@@|s","@@@nDi","@@na£¾uYL¯QªmĉÅdMgÇjcº«ę¬­K­´B«Âącoċ\\xK`cįŧ«®á[~ıxu·ÅKsËÉc¢Ù\\ĭƛëbf¹­ģSĜkáƉÔ­ĈZB{aMµfzŉfÓÔŹŁƋǝÊĉ{ğč±g³ne{ç­ií´S¬\\ßðK¦w\\iqªĭiAuA­µ_W¥ƣO\\lċĢttC¨£t`PZäuXßBsĻyekOđġĵHuXBµ]×­­\\°®¬F¢¾pµ¼kŘó¬Wät¸|@L¨¸µrºù³Ù~§WIZW®±Ð¨ÒÉx`²pĜrOògtÁZ{üÙ[|ûKwsPlU[}¦Rvn`hsª^nQ´ĘRWb_ rtČFIÖkĦPJ¶ÖÀÖJĈĄTĚòC ²@PúØz©Pî¢£CÈÚĒ±hŖl¬â~nm¨f©iļ«mntqÒTÜÄjL®EÌFª²iÊxØ¨IÈhhst[Ôx}dtüGæţŔïĬaĸpMËÐjē¢·ðĄÆMzjWKĎ¢Q¶À_ê_@ıi«pZgf¤Nrq]§ĂN®«H±yƳí¾×ŊďŀĐÏŴǝĂíÀBŖÕªÁŐTFqĉ¯³ËCĕģi¨hÜ·ñt»¯Ï","@@ºwZRkĕWK "]],"encodeOffsets":[[[125785,31436],[125729,31431],[125513,31380],[125329,30690],[125223,30438],[125115,30114],[124815,29155],[124419,28746],[124095,28635],[124005,28609],[125000,30713],[125111,30698],[125078,30682],[125150,30684],[124014,28103],[125008,31331],[125411,31468],[125329,31479],[125369,31139],[125626,30916],[125417,30956],[125254,30976],[125199,30997],[125095,31058],[125083,30915],[124885,31015],[125218,30798],[124867,30838],[124755,30788],[124802,30809],[125267,30657],[125218,30578],[125200,30562],[125192,30787],[124968,30474],[125167,30396],[125115,30363],[124955,29879],[124714,29781],[124762,29462],[124325,28754],[124863,30077],[125366,31477]]]},"properties":{"cp":[120.153576,30.287459],"name":"浙江","childNum":43}},{"id":"340000","geometry":{"type":"MultiPolygon","coordinates":[["@@^iuLV\\","@@e©Edh","@@´CE¶zAXêeödK¡~H¸íæAȽd{ďÅÀ½W®£ChÃsikkly]_teu[bFaTign{]GqªoĈMYá|·¥f¥őaSÕėNµñĞ«Im_m¿Âa]uĜp Z_§{Cäg¤°r[_YjÆOdý[I[á·¥Q_nùgL¾mzˆDÜÆ¶ĊJhpc¹O]iŠ]¥ jtsggDÑ¡w×jÉ©±EFË­KiÛÃÕYvsm¬njĻª§emná}k«ŕgđ²ÙDÇ¤í¡ªOy×Où±@DñSęćăÕIÕ¿IµĥOlJÕÍRÍ|JìĻÒåyķrĕq§ÄĩsWÆßF¶X®¿mwRIÞfßoG³¾©uyHį{Ɓħ¯AFnuPÍÔzVdàôº^Ðæd´oG¤{S¬ćxã}ŧ×Kǥĩ«ÕOEÐ·ÖdÖsƘÑ¨[Û^Xr¢¼§xvÄÆµ`K§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔēßúLÃÃ_ÈÏ|]ÂÏHlg`ben¾¢pUh~ƴĖ¶_r sĄ~cƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³]u}fïQl{skloNdjäËzDvčoQďHI¦rbrHĖ~BmlNRaĥTX\\{fÁKÁ®TLÂÄMtÊgĀDĄXƔvDcÎJbt[¤D@®hh~kt°ǾzÖ@¾ªdbYhüóV´ŮŒ¨Üc±r@J|àuYÇÔG·ĚąĐlŪÚpSJ¨ĸLvÞcPæķŨ®mÐálsgd×mQ¨ųÆ©Þ¤IÎs°KZpĄ|XwWdĎµmkǀwÌÕæhºgBĝâqÙĊzÖgņtÀÁĂÆáhEz|WzqD¹°Eŧl{ævÜcA`¤C`|´qxĲkq^³³GšµbíZ¹qpa±ď OH¦Ħx¢gPícOl_iCveaOjChß¸iÝbÛªCC¿mRV§¢A|tbkĜEÀtîm^g´fÄ"]],"encodeOffsets":[[[121722,32278],[119475,30423],[121606,33646]]]},"properties":{"cp":[117.283042,31.86119],"name":"安徽","childNum":3}},{"id":"350000","geometry":{"type":"MultiPolygon","coordinates":[["@@zht´}[","@@aj^~ĆGå","@@edHse","@@@vPGsyQ","@@sBzddW[O","@@S¨Qy","@@NVucW","@@qptB@q","@@¸[iu","@@Q\\pD[_","@@jSwUappI","@@eXª~","@@AjvFoo","@@fT_Çí\\v|ba¦jZÆy|®","@@IjLg","@@wJIx«¼AoNe{M¥","@@K±¡ÓČ~N¾","@@k¡¹Eh~c®uDqZì¡I~Māe£bN¨gZý¡a±Öcp©PhI¢QqÇGj|¥U g[Ky¬ŏv@OptÉEF\\@ åA¬V{XģĐBycpě¼³Ăp·¤¥ohqqÚ¡ŅLs^Ã¡§qlÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ßėuĕeûÒiÁŧS[¡Uûŗ½ùěcÝ§SùĩąSWó«íęACµeRåǃRCÒÇZÍ¢ź±^dlstjD¸ZpuÔâÃH¾oLUêÃÔjjēò´ĄWƛ^Ñ¥Ħ@ÇòmOw¡õyJyD}¢ďÑÈġfZda©º²z£NjD°Ötj¶¬ZSÎ~¾c°¶ÐmxO¸¢Pl´SL|¥AȪĖMņĲg®áIJČĒü` QF¬h|ĂJ@zµ |ê³È ¸UÖŬŬÀCtrĸr]ðM¤ĶĲHtÏ AĬkvsq^aÎbvdfÊòSD´Z^xPsĂrvƞŀjJd×ŘÉ ®AÎ¦ĤdxĆqAZRÀMźnĊ»İÐZ YXæJyĊ²·¶q§·K@·{sXãô«lŗ¶»o½E¡­«¢±¨Y®Ø¶^AvWĶGĒĢPlzfļtàAvWYãO_¤sD§ssČġ[kƤPX¦`¶®BBvĪjv©jx[L¥àï[F¼ÍË»ğV`«Ip}ccÅĥZEãoP´B@D¸m±z«Ƴ¿å³BRØ¶Wlâþäą`]Z£Tc ĹGµ¶Hm@_©k¾xĨôȉðX«½đCIbćqK³ÁÄš¬OAwã»aLŉËĥW[ÂGIÂNxĳ¤D¢îĎÎB§°_JGs¥E@¤ućPåcuMuw¢BI¿]zG¹guĮI"]],"encodeOffsets":[[[123250,27563],[122541,27268],[123020,27189],[122916,27125],[122887,26845],[122808,26762],[122568,25912],[122778,26197],[122515,26757],[122816,26587],[123388,27005],[122450,26243],[122578,25962],[121255,25103],[120987,24903],[122339,25802],[121042,25093],[122439,26024]]]},"properties":{"cp":[119.306239,26.075302],"name":"福建","childNum":18}},{"id":"360000","geometry":{"type":"Polygon","coordinates":["@@ÖP¬ǦĪØLŨä~Ĉw«|TH£pc³Ïå¹]ĉđxe{ÎÓvOEm°BƂĨİ|Gvz½ª´HàpeJÝQxnÀW­EµàXÅĪt¨ÃĖrÄwÀFÎ|Ă¡WÕ¸cf¥XaęST±m[r«_gmQu~¥V\\OkxtL E¢Ú^~ýØkbēqoě±_Êw§Ñ²ÏƟė¼mĉŹ¿NQYBąrwģcÍ¥B­ŗÊcØiIƝĿuqtāwO]³YCñTeÉcaubÍ]trluīBÐGsĵıN£ï^ķqsq¿DūūVÕ·´Ç{éĈýÿOER_đûIċâJh­ŅıNȩĕB¦K{Tk³¡OP·wnµÏd¯}½TÍ«YiµÕsC¯iM¤­¦¯P|ÿUHvhe¥oFTuõ\\OSsMòđƇiaºćXĊĵà·çhƃ÷Ç{ígu^đgm[ÙxiIN¶Õ»lđÕwZSÆv©_ÈëJbVkĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B±ÌKyñ`w²¹·`gsÙfIěxŕeykpudjuTfb·hh¿Jd[\\LáƔĨƐAĈepÀÂMD~ņªe^\\^§ý©j×cZØ¨zdÒa¶lÒJìõ`oz÷@¤uŞ¸´ôęöY¼HČƶajlÞƩ¥éZ[|h}^U  ¥pĄžƦO lt¸Æ Q\\aÆ|CnÂOjt­ĚĤdÈF`¶@Ðë ¦ōÒ¨SêvHĢÛ@[ÆQoxHW[ŰîÀt¦Ǆ~NĠ¢lĄtZoCƞÔºCxrpČNpj¢{f_Y`_eq®Aot`@oDXfkp¨|s¬\\DÄSfè©Hn¬^DhÆyøJhØxĢĀLÊƠPżċĄwĮ¶"],"encodeOffsets":[[118923,30536]]},"properties":{"cp":[115.892151,28.676493],"name":"江西","childNum":1}},{"id":"370000","geometry":{"type":"MultiPolygon","coordinates":[["@@Xjd]mE","@@itnq","@@Dl@k","@@TGw","@@K¬U","@@Wd`c","@@PtMs","@@LnXlc","@@ppVu]Qn","@@cdzAU_","@@udRhnCE","@@oIpP","@@M{ĿčwbxƨîKÎMĮ]ZF½Y]â£ph¶¨râøÀÎǨ¤^ºÄGz~grĚĜlĞÆLĆǆ¢Îo¦cvKbgr°WhmZp L]LºcUÆ­nżĤÌĒbAnrOA´ȊcÀbƦUØrĆUÜøĬƞŶǬĴóò_A̈«ªdÎÉnb²ĦhņBĖįĦåXćì@L¯´ywƕCéÃµė ƿ¸lµZæyj|BíÂKNNnoƈfÈMZwnŐNàúÄsTJULîVjǎ¾ĒØDz²XPn±ŴPè¸ŔLƔÜƺ_TüÃĤBBċÈöA´faM¨{«M`¶d¡ôÖ°mȰBÔjj´PM|c^d¤u¤Û´ä«ƢfPk¶Môl]Lb}su^ke{lCMrDÇ­]NÑFsmoõľHyGă{{çrnÓEƕZGª¹Fj¢ÿ©}ÌCǷë¡ąuhÛ¡^KxC`C\\bÅxì²ĝÝ¿_NīCȽĿåB¥¢·IŖÕy\\¹kxÃ£ČáKµË¤ÁçFQ¡KtŵƋ]CgÏAùSedcÚźuYfyMmhUWpSyGwMPqŀÁ¼zK¶G­Y§Ë@´śÇµƕBm@IogZ¯uTMx}CVKï{éƵP_K«pÛÙqċtkkù]gTğwoɁsMõ³ăAN£MRkmEÊčÛbMjÝGuIZGPģãħE[iµBEuDPÔ~ª¼ęt]ûG§¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~Ż¸YI] PumŝrƿIā[xeÇ³L¯v¯s¬ÁY~}ťuŁgƋpÝĄ_ņī¶ÏSR´ÁP~¿Cyċßdwk´SsX|t`Ä ÈðAªìÎT°¦Dda^lĎDĶÚY°`ĪŴǒàŠv\\ebZHŖR¬ŢƱùęOÑM­³FÛaj"]],"encodeOffsets":[[[123806,39303],[123821,39266],[123742,39256],[123702,39203],[123649,39066],[123847,38933],[123580,38839],[123894,37288],[123043,36624],[123344,38676],[123522,38857],[123628,38858],[118267,36772]]]},"properties":{"cp":[117.000923,36.675807],"name":"山东","childNum":13}},{"id":"410000","geometry":{"type":"MultiPolygon","coordinates":[["@@dXD}~Hgq~ÔN~zkĘHVsǲßjŬŢ`Pûàl¢\\ÀEhİgÞē X¼`khÍLùµP³swIÓzeŠĠð´E®ÚPtºIŊÊºL«šŕQGYfa[şußǑĩų_Z¯ĵÙčC]kbc¥CS¯ëÍB©ïÇÃ_{sWTt³xlàcČzÀD}ÂOQ³ÐTĬµƑÐ¿ŸghłŦv~}ÂZ«¤lPÇ£ªÝŴÅR§ØnhctâknÏ­ľŹUÓÝdKuķI§oTũÙďkęĆH¸Ó\\Ä¿PcnS{wBIvÉĽ[GqµuŇôYgûZca©@½Õǽys¯}lgg@­C\\£asIdÍuCQñ[L±ęk·ţb¨©kK»KC²òGKmĨS`UQnk}AGēsqaJ¥ĐGRĎpCuÌy ã iMcplk|tRkðev~^´¦ÜSí¿_iyjI|ȑ|¿_»d}q^{Ƈdă}tqµ`ŷé£©V¡om½ZÙÏÁRD|JOÈpÀRsI{ùÓjuµ{t}uËRivGçJFjµåkWê´MÂHewixGw½Yŷpµú³XU½ġyłåkÚwZX·l¢Á¢KzOÎÎjc¼htoDHr|­J½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQĹ¤]MÛfaQpě±ǽ¾]u­Fu÷nčÄ¯ADp}AjmcEÇaª³o³ÆÍSƇĈÙDIzçñİ^KNiÞñ[aA²zzÌ÷D|[íÄ³gfÕÞd®|`Ć~oĠƑô³ŊD×°¯CsøÂ«ìUMhTº¨¸ǝêWÔDruÂÇZ£ĆPZW~ØØv¬gèÂÒw¦X¤Ā´oŬ¬²Ês~]®tªapŎJ¨Öº_ŔfŐ\\Đ\\Ĝu~m²Ƹ¸fWĦrƔ}Î^gjdfÔ¡J}\\n C¦þWxªJRÔŠu¬ĨĨmFdM{\\d\\YÊ¢ú@@¦ª²SÜsC}fNècbpRmlØ^gd¢aÒ¢CZZxvÆ¶N¿¢T@uC¬^ĊðÄn|lIlXhun[","@@hzUq"]],"encodeOffsets":[[[116744,37216],[116480,33048]]]},"properties":{"cp":[113.665412,34.757975],"name":"河南","childNum":2}},{"id":"420000","geometry":{"type":"MultiPolygon","coordinates":[["@@ASd","@@ls{d","@@¾«}{ra®pîÃ\\{øCËyyB±b\\òÝjKL ]ĎĽÌJyÚCƈćÎT´Å´pb©ÈdFin~BCo°BĎÃømv®E^vǾ½Ĝ²RobÜeN^ĺ£R¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I¾®I{GqpCgyl{£ÍÍyPLÂ¡¡¸kWxYlÙæŁĢz¾V´W¶ùŸo¾ZHxjwfxGNÁ³Xéæl¶EièIH ujÌQ~v|sv¶Ôi|ú¢FhQsğ¦SiŠBgÐE^ÁÐ{čnOÂÈUÎóĔÊēĲ}Z³½Mŧïeyp·uk³DsÑ¨L¶_ÅuÃ¨w»¡WqÜ]\\Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟOKÉġÿ×wg÷IÅzCg]m«ªGeçÃTC«[t§{loWeC@ps_Bp­rf_``Z|ei¡oċMqow¹DƝÓDYpûsYkıǃ}s¥ç³[§cY§HK«Qy]¢wwö¸ïx¼ņ¾Xv®ÇÀµRĠÐHM±cÏdƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy¿³x¯No|¹HÏÛmjúË~TuęjCöAwě¬Rđl¯ Ñb­ŇTĿ_[IčĄʿnM¦ğ\\É[T·k¹©oĕ@A¾wya¥Y\\¥Âaz¯ãÁ¡k¥ne£ÛwE©Êō¶˓uoj_U¡cF¹­[WvP©whuÕyBF`RqJUw\\i¡{jEPïÿ½fćQÑÀQ{°fLÔ~wXgītêÝ¾ĺHd³fJd]HJ²EoU¥HhwQsƐ»Xmg±çve]DmÍPoCc¾_hhøYrŊU¶eD°Č_N~øĹĚ·`z]Äþp¼äÌQv\\rCé¾TnkžŐÚÜa¼ÝƆĢ¶ÛodĔňÐ¢JqPb ¾|J¾fXƐîĨ_Z¯À}úƲN_ĒÄ^ĈaŐyp»CÇÄKñL³ġM²wrIÒŭxjb[n«øæà ^²­h¯ÚŐªÞ¸Y²ĒVø}Ā^İ´LÚm¥ÀJÞ{JVųÞŃx×sxxƈē ģMřÚðòIfĊŒ\\Ʈ±ŒdÊ§ĘDvČ_Àæ~Dċ´A®µ¨ØLV¦êHÒ¤"]],"encodeOffsets":[[[113712,34000],[115612,30507],[113649,34054]]]},"properties":{"cp":[114.298572,30.584355],"name":"湖北","childNum":3}},{"id":"430000","geometry":{"type":"MultiPolygon","coordinates":[["@@nFZw","@@ãÆá½ÔXrCOËRïÿĩ­TooQyÓ[ŅBE¬ÎÓXaį§Ã¸G °ITxpúxÚĳ¥ÏĢ¾edÄ©ĸGàGhM¤Â_U}Ċ}¢pczfþg¤ÇôAV","@@ȴÚĖÁĐiOĜ«BxDõĚivSÌ}iùÜnÐºG{p°M°yÂÒzJ²Ì ÂcXëöüiáÿñőĞ¤ùTz²CȆȸǎŪƑÐc°dPÎğË¶[È½u¯½WM¡­ÉB·rínZÒ `¨GA¾\\pēXhÃRC­üWGġuTé§ŎÑ©êLM³}_EÇģc®ęisÁPDmÅ{b[RÅs·kPŽƥóRoOV~]{g\\êYƪ¦kÝbiċƵGZ»Ěõó·³vŝ£ø@pyö_ëIkÑµbcÑ§y×dYØªiþUjŅ³C}ÁN»hĻħƏâƓKA·³CQ±µ§¿AUƑ¹AtćOwD]JUÖgk¯b£ylZFËÑ±H­}EbóľA¡»Ku¦·³åş¥ùBD^{ÌC´­¦ŷJ£^[ª¿ğ|ƅN skóā¹¿ï]ă~÷O§­@Vm¡Qđ¦¢Ĥ{ºjÔª¥nf´~Õo×ÛąGû¥cÑ[Z¶ŨĪ²SÊǔƐƀAÚŌ¦QØ¼rŭ­«}NÏürÊ¬mjr@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hT}mĉ¹¥ěDÿë©ıÓ[Oº£¥ótł¹MÕƪ`PDiÛU¾ÅâìUñBÈ£ýhedy¡oċ`pfmjP~kZaZsÐd°wj§@Ĵ®w~^kÀÅKvNmX\\¨aŃqvíó¿F¤¡@ũÑVw}S@j}¾«pĂrªg àÀ²NJ¶¶DôK|^ª°LX¾ŴäPĪ±£EXd^¶ĲÞÜ~u¸ǔMRhsRe`ÄofIÔ\\Ø  ićymnú¨cj ¢»GČìƊÿÐ¨XeĈĀ¾Oð Fi ¢|[jVxrIQ_EzAN¦zLU`cªxOTu RLÄªpUĪȴ^ŎµªÉFxÜf¤ºgĲèy°Áb[¦Zb¦z½xBĖ@ªpºjS´rVźOd©ʪiĎăJP`"]],"encodeOffsets":[[[115640,30489],[112577,27316],[114113,30649]]]},"properties":{"cp":[112.982279,28.19409],"name":"湖南","childNum":3}},{"id":"440000","geometry":{"type":"MultiPolygon","coordinates":[["@@QdAsa","@@lxDRm","@@sbhNLo","@@Ă ý","@@WltOY[","@@Kr]S","@@e~AS}","@@I|Mym","@@Û³LS²Q","@@nvºBë¥cÕº","@@zdÛJm","@@°³","@@a yAª¸ËJIxØ@ĀHÉÕZofoo","@@sŗÃÔėAƁZÄ ~°ČPºb","@@¶ÝÌvmĞh¹Ĺ","@@HdSjĒ¢D}waru«ZqadY{K","@@el\\LqqO","@@~rMmX","@@f^E","@@øPªoj÷ÍÝħXČx°Q¨ıXJp","@@gÇƳmxatfu","@@EÆC½","@@¸B_¶ekWvSivc}p}Ăº¾NĎyj¦Èm th_®Ä}»âUzLË²Aā¡ßH©Ùñ}wkNÕ¹ÇO½¿£ēUlaUìIÇª`uTÅxYĒÖ¼kÖµMjJÚwn\\hĒv]îh|ÈƄøèg¸Ķß ĉĈWb¹ƀdéĘNTtP[öSvrCZaGubo´ŖÒÇĐ~¡zCIözx¢PnÈñ @ĥÒ¦]ƜX³ăĔñiiÄÓVépKG½ÄÓávYoC·sitiaÀyŧÎ¡ÈYDÑům}ý|m[węõĉZÅxUO}÷N¹³ĉo_qtăqwµŁYÙǝŕ¹tïÛUÃ¯mRCºĭ|µÕÊK½Rē ó]GªęAxNqSF|ām¡diď×YïYWªŉOeÚtĐ«zđ¹TāúEáÎÁWwíHcòßÎſ¿Çdğ·ùT×Çūʄ¡XgWÀǇğ·¿ÃOj YÇ÷Sğ³kzőõmĝ[³¡VÙæÅöMÌ³¹pÁaËýý©D©ÜJŹƕģGą¤{ÙūÇO²«BƱéAÒĥ¡«BhlmtÃPµyU¯ucd·w_bŝcīímGOGBȅŹãĻFŷŽŕ@Óoo¿ē±ß}}ÓF÷tĲWÈCőâUâǙIğŉ©IĳE×Á³AĥDĈ±ÌÜÓĨ£L]ĈÙƺZǾĆĖMĸĤfÎĵlŨnÈĐtFFĤêk¶^k°f¶g}®Faf`vXŲxl¦ÔÁ²¬Ð¦pqÊÌ²iXØRDÎ}Ä@ZĠsx®AR~®ETtĄZƈfŠŠHâÒÐAµ\\S¸^wĖkRzalŜ|E¨ÈNĀňZTpBh£\\ĎƀuXĖtKL¶G|»ĺEļĞ~ÜĢÛĊrOÙîvd]n¬VÊĜ°RÖpMƀ¬HbwEÀ©\\¤]ŸI®¥D³|Ë]CúAŠ¦æ´¥¸Lv¼¢ĽBaôF~®²GÌÒEYzk¤°ahlVÕI^CxĈPsBƒºVÀB¶¨R²´D","@@OR"]],"encodeOffsets":[[[117381,22988],[116552,22934],[116790,22617],[116973,22545],[116444,22536],[116931,22515],[116496,22490],[116453,22449],[113301,21439],[118726,21604],[118709,21486],[113210,20816],[115482,22082],[113171,21585],[113199,21590],[115232,22102],[115739,22373],[115134,22184],[113056,21175],[119573,21271],[119957,24020],[115859,22356],[116680,26053],[116561,22649]]]},"properties":{"cp":[113.280637,23.125178],"name":"广东","childNum":24}},{"id":"450000","geometry":{"type":"MultiPolygon","coordinates":[["@@H TI¡U","@@Ɣ_LÊFZgčP­kini«qÇczÍY®¬Ů»qR×ō©DÕ§ƙǃŵTÉĩ±ıdÑnYYĲvNĆĆØÜ Öp}e³¦m©iÓ|¹ħņ|ª¦QF¢Â¬ʖovg¿em^ucäāmÇÖåB¡Õçĝ}FĻ¼Ĺ{µHKsLSđƃrč¤[AgoSŇYMÿ§Ç{FśbkylQxĕ]T·¶[BÑÏGáşşƇeăYSs­FQ}­BwtYğÃ@~CÍQ ×WjË±rÉ¥oÏ ±«ÓÂ¥kwWűue_b­E~µh¯ecl¯Ïr¯EģJğ}w³Ƈē`ãògK_ÛsUʝćğ¶höO¤Ǜn³c`¡yię[ďĵűMę§]XÎ_íÛ]éÛUćİÕBƣ±dy¹T^dûÅÑŦ·PĻþÙ`K¦¢ÍeĥR¿³£[~äu¼dltW¸oRM¢ď\\z}Æzdvň{ÎXF¶°Â_ÒÂÏL©ÖTmu¼ãlīkiqéfA·Êµ\\őDc¥ÝFyÔćcűH_hLÜêĺĐ¨c}rn`½Ì@¸¶ªVLhŒ\\Ţĺk~Ġið°|gtTĭĸ^xvKVGréAébUuMJVÃO¡qĂXËSģãlýà_juYÛÒBG^éÖ¶§EGÅzěƯ¤EkN[kdåucé¬dnYpAyČ{`]þ±X\\ÞÈk¡ĬjàhÂƄ¢Hè ŔâªLĒ^Öm¶ħĊAǦė¸zÚGn£¾rªŀÜt¬@ÖÚSx~øOŒŶÐÂæȠ\\ÈÜObĖw^oÞLf¬°bI lTØBÌF£Ć¹gñĤaYt¿¤VSñK¸¤nM¼JE±½¸ñoÜCƆæĪ^ĚQÖ¦^f´QüÜÊz¯lzUĺš@ìp¶n]sxtx¶@~ÒĂJb©gk{°~c°`Ô¬rV\\la¼¤ôá`¯¹LCÆbxEræOv[H­[~|aB£ÖsºdAĐzNÂðsÞÆĤªbab`ho¡³F«èVZs\\\\ÔRzpp®SĪº¨ÖºNĳd`a¦¤F³¢@`¢ĨĀìhYvlĆº¦Ċ~nS|gźv^kGÆÀè·"]],"encodeOffsets":[[[111707,21520],[113706,26955]]]},"properties":{"cp":[108.320004,22.82402],"name":"广西","childNum":2}},{"id":"460000","geometry":{"type":"Polygon","coordinates":["@@¦Ŝil¢XƦƞòïè§ŞCêɕrŧůÇąĻõ·ĉ³œ̅kÇm@ċȧŧĥĽʉ­ƅſȓÒË¦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀÐ¾jNðĀÒRZǆzÐĊ¢DÀɘZ"],"encodeOffsets":[[112750,20508]]},"properties":{"cp":[110.33119,20.031971],"name":"海南","childNum":1}},{"id":"510000","geometry":{"type":"MultiPolygon","coordinates":[["@@LqSn","@@ĆOìÛÐ@ĞǔNY{¤Á§di´ezÝúØãwIþËQÇ¦ÃqÉSJ»ĂéʔõÔƁİlƞ¹§ĬqtÀƄmÀêErĒtD®ċæcQE®³^ĭ¥©l}äQtoŖÜqÆkµªÔĻĴ¡@Ċ°B²Èw^^RsºTĀ£ŚæQPJvÄz^Đ¹Æ¯fLà´GC²dt­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïPÈ®âbMüÀXZ ¸£@Å»»QÉ­]dsÖ×_Í_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|YÔZśÎs´xº±Uñt|OĩĠºNbgþJy^dÂY Į]Řz¦gC³R`Āz¢Aj¸CL¤RÆ»@­Ŏk\\Ç´£YW}z@Z}Ã¶oû¶]´^NÒ}èNªPÍy¹`S°´ATeVamdUĐwʄvĮÕ\\uÆŗ¨Yp¹àZÂmWh{á}WØǍÉüwga§ßAYrÅÂQĀÕ¬LŐý®Xøxª½Ű¦¦[þ`ÜUÖ´òrÙŠ°²ÄkĳnDX{U~ET{ļº¦PZcjF²Ė@pg¨B{u¨ŦyhoÚD®¯¢ WòàFÎ¤¨GDäz¦kŮPġqË¥À]eâÚ´ªKxīPÖ|æ[xÃ¤JÞĥsNÖ½I¬nĨY´®ÐƐmDŝuäđđEbee_v¡}ìęǊē}qÉåT¯µRs¡M@}ůaa­¯wvƉåZw\\Z{åû`[±oiJDÅ¦]ĕãïrG réÏ·~ąSfy×Í·ºſƽĵȁŗūmHQ¡Y¡®ÁÃ×t«­T¤JJJyJÈ`Ohß¦¡uËhIyCjmÿwZGTiSsOB²fNmsPa{M{õE^Hj}gYpaeu¯oáwHjÁ½M¡pMuåmni{fk\\oÎqCwEZ¼KĝAy{m÷LwO×SimRI¯rKõBS«sFe]fµ¢óY_ÆPRcue°Cbo×bd£ŌIHgtrnyPt¦foaXďxlBowz_{ÊéWiêEGhÜ¸ºuFĈIxf®Y½ĀǙ]¤EyF²ċw¸¿@g¢§RGv»áW`ÃĵJwi]t¥wO­½a[×]`Ãi­üL¦LabbTÀåc}ÍhÆh®BHî|îºÉk­¤Sy£ia©taį·Ɖ`ō¥UhOĝLk}©Fos´JmµlŁuønÑJWÎªYÀïAetTŅÓGË«bo{ıwodƟ½OġÜÂµxàNÖ¾P²§HKv¾]|BÆåoZ`¡Ø`ÀmºĠ~ÌÐ§nÇ¿¤]wğ@srğu~Io[é±¹ ¿ſđÓ@qg¹zƱřaí°KtÇ¤V»Ã[ĩǭƑ^ÇÓ@áťsZÏÅĭƋěpwDóÖáŻneQËq·GCœýS]x·ýq³OÕ¶Qzßti{řáÍÇWŝŭñzÇWpç¿JXĩè½cFÂLiVjx}\\NŇĖ¥GeJA¼ÄHfÈu~¸Æ«dE³ÉMA|bÒćhG¬CMõƤąAvüVéŀ_VÌ³ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»ÕZ³ġqDoy`L¬gdp°şp¦ėìÅĮZ°Iähzĵf²å ĚÑKpIN|Ñz]ń·FU×é»R³MÉ»GM«kiér}Ã`¹ăÞmÈnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²ĠþTº·àUȞÏʦ¶I«dĽĢdĬ¿»Ĕ×h\\c¬ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvwxBèĻĒ©Ĉt@Ğû¸£B¯¨ˋäßkķ½ªôNÔ~t¼Ŵu^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ®Z´ğ~Sn|ªWÚ©òzPOȸbð¢|øĞA"]],"encodeOffsets":[[[108815,30935],[100197,35028]]]},"properties":{"cp":[104.065735,30.659462],"name":"四川","childNum":2}},{"id":"520000","geometry":{"type":"MultiPolygon","coordinates":[["@@G\\lY£cj","@@q|mc¯vÏV","@@hÑ£IsNgßHHªķÃh_¹¡ĝÄ§ń¦uÙùgS¯JH|sÝÅtÁïyMDč»eÕtA¤{b\\}G®u\\åPFqwÅaDK°ºâ_£ùbµmÁÛĹM[q|hlaªāI}Ñµ@swtwm^oµDéĽŠyVky°ÉûÛR³e¥]RÕěħ[ƅåÛDpJiVÂF²I»mN·£LbÒYbWsÀbpkiTZĄă¶Hq`ĥ_J¯ae«KpÝx]aĕÛPÇȟ[ÁåŵÏő÷Pw}TÙ@Õs«ĿÛq©½m¤ÙH·yǥĘĉBµĨÕnđ]K©œáGçş§ÕßgǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊw¶øV¤w²Ĉ]ÊKx|`ź¦ÂÈdrcÈbe¸`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pĐ`oÒh¶pa^ÓĔ}D»^Xy`d[KvJPhèhCrĂĚÂ^Êƌ wZL­Ġ£ÁbrzOIlMMĪŐžËr×ÎeŦtw|¢mKjSǘňĂStÎŦEtqFT¾Eì¬¬ôxÌO¢ K³ŀºäYPVgŎ¦ŊmŞ¼VZwVlz¤£Tl®ctĽÚó{G­AÇge~Îd¿æaSba¥KKûj®_Ä^\\Ø¾bP®¦x^sxjĶI_Ä Xâ¼Hu¨Qh¡À@Ëô}±GNìĎlT¸`V~R°tbÕĊ`¸úÛtÏFDu[MfqGH·¥yAztMFe|R_GkChZeÚ°tov`xbDnÐ{E}ZèxNEÞREn[Pv@{~rĆAB§EO¿|UZ~ìUf¨J²ĂÝÆsªB`s¶fvö¦Õ~dÔq¨¸º»uù[[§´sb¤¢zþF¢ÆÀhÂW\\ıËIÝo±ĭŠ£þÊs}¡R]ěDg´VG¢j±®èºÃmpU[Áëº°rÜbNu¸}º¼`niºÔXĄ¤¼ÔdaµÁ_ÃftQQgR·Ǔv}Ý×ĵ]µWc¤F²OĩųãW½¯K©]{LóµCIµ±Mß¿h©āq¬o½~@i~TUxð´Đhw­ÀEîôuĶb[§nWuMÆJl½]vuıµb"]],"encodeOffsets":[[[112158,27383],[112105,27474],[112095,27476]]]},"properties":{"cp":[106.713478,26.578343],"name":"贵州","childNum":3}},{"id":"530000","geometry":{"type":"Polygon","coordinates":["@@[ùx½}ÑRHYīĺûsÍniEoã½Ya²ė{c¬ĝgĂsAØÅwďõzFjw}«Dx¿}Uũlê@HÅ­F¨ÇoJ´Ónũuą¡Ã¢pÒÅØ TF²xa²ËXcÊlHîAßËŁkŻƑŷÉ©hW­æßUËs¡¦}teèÆ¶StÇÇ}Fd£jĈZĆÆ¤Tč\\D}O÷£U§~ŃGåŃDĝ¸Tsd¶¶Bª¤u¢ŌĎo~t¾ÍŶÒtD¦ÚiôözØX²ghįh½Û±¯ÿm·zR¦Ɵ`ªŊÃh¢rOÔ´£Ym¼èêf¯ŪĽncÚbw\\zlvWªâ ¦gmĿBĹ£¢ƹřbĥkǫßeeZkÙIKueT»sVesbaĕ  ¶®dNĄÄpªy¼³BE®lGŭCǶwêżĔÂepÍÀQƞpC¼ŲÈ­AÎô¶RäQ^Øu¬°_Èôc´¹ò¨PÎ¢hlĎ¦´ĦÆ´sâÇŲPnÊD^¯°Upv}®BPÌªjǬxSöwlfòªvqĸ|`H­viļndĜ­Ćhňem·FyÞqóSį¯³X_ĞçêtryvL¤§z¦c¦¥jnŞklD¤øz½ĜàĂŧMÅ|áƆàÊcðÂFÜáŢ¥\\\\ºİøÒÐJĴîD¦zK²ǏÎEh~CD­hMn^ÌöÄ©ČZÀaüfɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~ÄqêljN¬¼HÊNQ´ê¼VØ¸E^ŃÒyM{JLoÒęæe±Ķygã¯JYÆĭĘëo¥Šo¯hcK«z_prC´ĢÖY¼ v¸¢RÅW³Â§fÇ¸Yi³xR´ďUË`êĿUûuĆBƣöNDH«ĈgÑaB{ÊNF´¬c·Åv}eÇÃGB»If¦HňĕM~[iwjUÁKE¾dĪçWIèÀoÈXòyŞŮÈXâÎŚj|àsRyµÖPr´þ ¸^wþTDŔHr¸RÌmfżÕâCôoxĜƌÆĮÐYtâŦÔ@]ÈǮƒ\\Ī¼Ä£UsÈ¯LbîƲŚºyhr@ĒÔƀÀ²º\\êpJ}ĠvqtĠ@^xÀ£È¨mËÏğ}n¹_¿¢×Y_æpÅA^{½Lu¨GO±Õ½ßM¶wÁĢÛPƢ¼pcĲx|apÌ¬HÐŊSfsðBZ¿©XÏÒKk÷Eû¿SrEFsÕūkóVǥŉiTL¡n{uxţÏhôŝ¬ğōNNJkyPaqÂğ¤K®YxÉƋÁ]āęDqçgOgILu\\_gz]W¼~CÔē]bµogpÑ_oď`´³Țkl`IªºÎȄqÔþ»E³ĎSJ»_f·adÇqÇc¥Á_Źw{L^É±ćxU£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏÉ¸½řÍcÊG|µƕƣGË÷k°_^ý|_zċBZocmø¯hhcæ\\lMFlư£ĜÆyHF¨µêÕ]HAàÓ^it `þßäkĤÎT~Wlÿ¨ÔPzUCNVv [jâôDôď[}z¿msSh¯{jïğl}šĹ[őgK©U·µË@¾m_~q¡f¹ÅË^»f³ø}Q¡ÖË³gÍ±^Ç\\ëÃA_¿bWÏ[¶ƛé£F{īZgm@|kHǭƁć¦UĔť×ëǟeċ¼ȡȘÏíBÉ£āĘPªĳ¶ŉÿy©nď£G¹¡I±LÉĺÑdĉÜW¥}gÁ{aqÃ¥aıęÏZÁ`"],"encodeOffsets":[[104636,22969]]},"properties":{"cp":[102.712251,25.040609],"name":"云南","childNum":1}},{"id":"540000","geometry":{"type":"Polygon","coordinates":["@@ÂhľxŖxÒVºÅâAĪÝȆµę¯Ňa±r_w~uSÕňqOj]ɄQ£ZUDûoY»©M[L¼qãË{VÍçWVi]ë©Ä÷àyƛhÚU°adcQ~Mx¥caÛcSyFÖk­uRýq¿ÔµQĽ³aG{¿FµëªéĜÿª@¬·K·àariĕĀ«V»ŶĴūgèLǴŇƶaftèBŚ£^âǐÝ®M¦ÁǞÿ¬LhJ¾óƾÆºcxwf]Y´¦|QLn°adĊ\\¨oǀÍŎ´ĩĀd`tÊQŞŕ|¨C^©Ĉ¦¦ÎJĊ{ëĎjª²rÐl`¼Ą[t|¦Stè¾PÜK¸dƄı]s¤î_v¹ÎVòŦj£Əsc¬_Ğ´|Ł¦Av¦w`ăaÝaa­¢e¤ı²©ªSªÈMĄwÉØŔì@T¤Ę\\õª@þo´­xA sÂtŎKzó²ÇČµ¢r^nĊ­Æ¬×üG¢³ {âĊ]G~bÀgVjzlhǶfOfdªB]pjTOtĊn¤}®¦Č¥d¢¼»ddY¼t¢eȤJ¤}Ǿ¡°§¤AÐlc@ĝsªćļđAçwxUuzEÖġ~AN¹ÄÅȀŻ¦¿ģŁéì±Hãd«g[Ø¼ēÀcīľġ¬cJµÐʥVȝ¸ßS¹ý±ğkƁ¼ą^ɛ¤Ûÿb[}¬ōõÃ]ËNm®g@Bg}ÍF±ǐyL¥íCIĳÏ÷Ñį[¹¦[âšEÛïÁÉdƅß{âNÆāŨß¾ě÷yC£k­´ÓH@Â¹TZ¥¢į·ÌAÐ§®Zcv½Z­¹|ÅWZqgW|ieZÅYVÓqdqbc²R@c¥Rã»GeeƃīQ}J[ÒK¬Ə|oėjġĠÑN¡ð¯EBčnwôɍėª²CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛęgſ¶ҍć`ĘąŌJÞä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷f±iMÝ@ĥ°G¬ÃM¥n£Øąğ¯ß§aëbéüÑOčk£{\\eµª×MÉfm«Ƒ{Å×Gŏǩãy³©WÑăû··Qòı}¯ãIéÕÂZ¨īès¶ZÈsæĔTŘvgÌsN@îá¾ó@ÙwU±ÉTå»£TđWxq¹Zobs[×¯cĩvėŧ³BM|¹kªħ¥TzNYnÝßpęrñĠĉRS~½ěVVµõ«M££µBĉ¥áºae~³AuĐh`Ü³ç@BÛïĿa©|z²Ý¼D£àč²ŸIûI āóK¥}rÝ_Á´éMaň¨~ªSĈ½½KÙóĿeƃÆB·¬ën×W|Uº}LJrƳlŒµ`bÔ`QÐÓ@s¬ñIÍ@ûws¡åQÑßÁ`ŋĴ{ĪTÚÅTSÄ³Yo|Ç[Ç¾µMW¢ĭiÕØ¿@MhpÕ]jéò¿OƇĆƇpêĉâlØwěsǩĵ¸cbU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB\\qTGªÇĜçPoÿfñòą¦óQīÈáPābß{ZŗĸIæÅhnszÁCËìñÏ·ąĚÝUm®ó­L·ăUÈíoù´Êj°ŁŤ_uµ^°ìÇ@tĶĒ¡ÆM³Ģ«İĨÅ®ğRāðggheÆ¢zÊ©Ô\\°ÝĎz~ź¤PnMĪÖB£kné§żćĆKĒ°¼L¶èâz¨u¦¥LDĘz¬ýÎmĘd¾ßFzhg²Fy¦ĝ¤ċņbÎ@yĄæm°NĮZRÖíJ²öLĸÒ¨Y®ƌÐVàtt_ÚÂyĠz]ŢhzĎ{ÂĢXc|ÐqfO¢¤ögÌHNPKŖUú´xx[xvĐCûĀìÖT¬¸^}Ìsòd´_KgžLĴÀBon|H@Êx¦BpŰŌ¿fµƌA¾zǈRx¶FkĄźRzŀ~¶[´HnªVƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxǆBú^´W£dkɾĬpw˂ØɦļĬIŚÊnŔa¸~J°îlɌxĤÊÈðhÌ®gT´øàCÀ^ªerrƘd¢İP|Ė ŸWªĦ^¶´ÂLaT±üWƜǀRÂŶUńĖ[QhlLüAÜ\\qRĄ©"],"encodeOffsets":[[90849,37210]]},"properties":{"cp":[91.132212,29.660361],"name":"西藏","childNum":1}},{"id":"610000","geometry":{"type":"Polygon","coordinates":["@@¸ÂW¢xR­Fq§uF@N¢XLRMº[ğȣſï|¥Jkc`sŉǷ£Y³WN«ùMëï³ÛIg÷±mTșÚÒķø©þ¥yÓğęmWµÎumZyOŅƟĥÓ~sÑL¤µaÅY¦ocyZ{y c]{Ta©`U_Ěē£ωÊƍKùK¶ȱÝƷ§{û»ÅÁȹÍéuĳ|¹cÑdìUYOuFÕÈYvÁCqÓTǢí§·S¹NgV¬ë÷Át°DØ¯C´ŉƒópģ}ąiEËFéGU¥×K§­¶³BČ}C¿åċ`wġB·¤őcƭ²ő[Å^axwQOñJÙïŚĤNĔwƇÄńwĪ­o[_KÓª³ÙnKÇěÿ]ďă_d©·©Ýŏ°Ù®g]±ß×¥¬÷m\\iaǑkěX{¢|ZKlçhLtŇîŵœè[É@ƉĄEtƇÏ³­ħZ«mJ×¾MtÝĦ£IwÄå\\Õ{OwĬ©LÙ³ÙTª¿^¦rÌĢŭO¥lãyC§HÍ£ßEñX¡­°ÙCgpťzb`wIvA|¥hoĕ@E±iYd¥OÿµÇvPW|mCĴŜǂÒW¶¸AĜh^Wx{@¬­F¸¡ķn£P|ªĴ@^ĠĈæbÔc¶lYi^MicĎ°Â[ävï¶gv@ÀĬ·lJ¸sn|¼u~a]ÆÈtŌºJpþ£KKf~¦UbyäIĺãnÔ¿^­ŵMThĠÜ¤ko¼Ŏìąǜh`[tRd²Ĳ_XPrɲlXiL§à¹H°Ȧqº®QCbAŌJ¸ĕÚ³ĺ§ `d¨YjiZvRĺ±öVKkjGȊÄePĞZmļKÀ[`ösìhïÎoĬdtKÞ{¬èÒÒBÔpĲÇĬJŊ¦±J«[©ārHµàåVKe§|P²ÇÓ·vUzgnN¾yI@oHĆÛķhxen¡QQ±ƝJǖRbzy¸ËÐl¼EºpĤ¼x¼½~Ğà@ÚüdK^mÌSjp²ȮµûGĦ}Ħðǚ¶òƄjɂz°{ºØkÈęâ¦jªBg\\ċ°s¬]jú EȌǆ¬stRÆdĠİwÜ¸ôW¾ƮłÒ_{Ìû¼jº¹¢GǪÒ¯ĘZ`ºŊecņą~BÂgzpâēòYƲȐĎ"],"encodeOffsets":[[113634,40474]]},"properties":{"cp":[108.948024,34.263161],"name":"陕西","childNum":1}},{"id":"620000","geometry":{"type":"MultiPolygon","coordinates":[["@@Vu_^","@@ųEĠtt~nkh`Q¦ÅÄÜdwAb×ĠąJ¤DüègĺqBqj°lI¡Ĩ¶ĖIHdjÎB°aZ¢KJO[|A£Dx}NĂ¬HUnrk kp¼Y kMJn[aGáÚÏ[½rc}aQxOgsPMnUsncZsKúvAtÞġ£®ĀYKdnFw¢JE°Latf`¼h¬we|Æbj}GA·~W`¢MC¤tL©Ĳ°qdfObÞĬ¹ttu`^ZúE`[@Æsîz®¡CƳƜG²R¢RmfwĸgÜą G@pzJM½mhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬²I¥IŉÈīoıÓÑAçÑ|«LÝcspīðÍgtë_õ\\ĉñLYnĝgRǡÁiHLlõUĹ²uQjYi§Z_c¨´ĹĖÙ·ŋIaBD­R¹ȥr¯GºßK¨jWkɱOqWĳ\\a­Q\\sg_ĆǛōëp»£lğÛgSŶN®À]ÓämĹãJaz¥V}Le¤Lýo¹IsŋÅÇ^bz³tmEÁ´a¹cčecÇNĊãÁ\\č¯dNj]jZµkÓdaćå]ğĳ@ ©O{¤ĸm¢E·®«|@Xwg]Aģ±¯XǁÑǳªcwQÚŝñsÕ³ÛV_ý¥\\ů¥©¾÷w©WÕÊĩhÿÖÁRo¸V¬âDb¨hûxÊ×ǌ~Zâg|XÁnßYoº§ZÅŘv[ĭÖʃuďxcVbnUSfB¯³_TzºÎO©çMÑ~M³]µ^püµÄY~y@X~¤Z³[Èōl@®Å¼£QK·Di¡ByÿQ_´D¥hŗy^ĭÁZ]cIzýah¹MĪğPs{ò²Vw¹t³ŜË[Ñ}X\\gsF£sPAgěp×ëfYHāďÖqēŭOÏëdLü\\it^c®RÊº¶¢H°mrY£B¹čIoľu¶uI]vģSQ{UŻÅ}QÂ|Ì°ƅ¤ĩŪU ęĄÌZÒ\\v²PĔ»ƢNHĂyAmƂwVm`]ÈbH`Ì¢²ILvĜH®¤Dlt_¢JJÄämèÔDëþgºƫaʎÌrêYi~ Îİ¤NpÀA¾Ĕ¼bð÷®üszMzÖĖQdȨýv§Tè|ªHÃ¾a¸|Ð ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v·À|\\ƁĚN´ĜçèÁz]ġ¤²¨QÒŨTIlªťØ}¼˗ƦvÄùØEÂ«FïËIqōTvāÜŏíÛßÛVj³âwGăÂíNOPìyV³ŉĖýZso§HÑiYw[ß\\X¦¥c]ÔƩÜ·«jÐqvÁ¦m^ċ±R¦΋ƈťĚgÀ»IïĨʗƮ°ƝĻþÍAƉſ±tÍEÕÞāNUÍ¡\\ſčåÒʻĘm ƭÌŹöʥëQ¤µ­ÇcƕªoIýIÉ_mkl³ăƓ¦j¡YzŇi}Msßõīʋ }ÁVm_[n}eı­Uĥ¼ªI{Î§DÓƻėojqYhĹT©oūĶ£]ďxĩǑMĝq`B´ƃ˺Чç~²ņj@¥@đ´ί}ĥtPńÇ¾V¬ufÓÉCtÓ̻¹£G³]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼĤŊɲĖÂ­KqĘŉ¼ĔǲņɾªǀÞĈĂD½ĄĎÌŗĞrôñnN¼â¾ʄľԆ|Ǆ֦ज़ȗǉ̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏĳëCȚDŲyê×Ŗyò¯ļcÂßYtÁƤyAã˾J@ǝrý@¤rz¸oP¹ɐÚyáHĀ[JwcVeȴÏ»ÈĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔĹŊũ~ËUă{ĻƹɁύȩþĽvĽƓÉ@ēĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶¨c~c¼īeXǚ\\đ¾JwÀďksãAfÕ¦L}waoZD½Ml«]eÒÅaÉ²áo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LFLzĈôe]gx}|KK}xklL]c¦£fRtív¦PŨ£","@@M T¥"]],"encodeOffsets":[[[108619,36299],[108594,36341],[108600,36306]]]},"properties":{"cp":[103.823557,36.058039],"name":"甘肃","childNum":3}},{"id":"630000","geometry":{"type":"MultiPolygon","coordinates":[["@@InJo","@@CÆ½OŃĦsΰ~Ē³¦@@Ņi±è}ШƄ˹A³r_ĞǒNĪĐw¤^ŬĵªpĺSZgrpiƼĘÔ¨C|ÍJ©Ħ»®VĲ~f\\m `UnÂ~ʌĬàöNt~ňjy¢ZiƔ¥Ąk´nl`JÊJþ©pdƖ®È£¶ìRʦźõƮËnʼėæÑƀĎ[¢VÎĂMÖÝÎF²sƊƀÎBļýƞ¯ʘƭðħ¼Jh¿ŦęΌƇ¥²Q]Č¥nuÂÏri¸¬ƪÛ^Ó¦d¥[Wàx\\ZjÒ¨GtpþYŊĕ´zUOëPîMĄÁxH´áiÜUàîÜŐĂÛSuŎrJðÌ¬EFÁú×uÃÎkrĒ{V}İ«O_ÌËĬ©ÓŧSRÑ±§Ģ£^ÂyèçěM³Ƃę{[¸¿uºµ[gt£¸OƤĿéYõ·kĀq]juw¥DĩƍõÇPéÄ½G©ã¤GuȧþRcÕĕNyyût­øï»a½ē¿BMoį£Íj}éZËqbʍƬh¹ìÿÓAçãnIÃ¡I`ks£CG­ěUy×Cy@¶ʡÊBnāzGơMē¼±O÷õJËĚăVĪũƆ£¯{ËL½ÌzżVR|ĠTbuvJvµhĻĖHAëáa­OÇðñęNwœľ·LmI±íĠĩPÉ×®ÿscB³±JKßĊ«`ađ»·QAmOVţéÿ¤¹SQt]]Çx±¯A@ĉĳ¢Óļ©l¶ÅÛrŕspãRk~¦ª]Į­´FRåd­ČsCqđéFn¿ÅƃmÉx{W©ºƝºįkÕƂƑ¸wWūÐ©ÈF£\\tÈ¥ÄRÈýÌJ lGr^×äùyÞ³fjc¨£ÂZ|ǓMĝÏ@ëÜőRĝ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³­ÞIňµç½©C¡į÷¯B»|St»]vųs»}MÓ ÿʪƟǭA¡fs»PY¼c¡»¦cċ­¥£~msĉPSi^o©AecPeǵkgyUi¿h}aHĉ^|á´¡HØûÅ«ĉ®]m¡qċ¶±ÈyôōLÁstB®wn±ă¥HSòė£Së@×œÊăxÇN©©T±ª£Ĳ¡fb®Þbb_Ą¥xu¥B{łĝ³«`dƐt¤ťiñÍUuºí`£^tƃĲc·ÛLO½sç¥Ts{ă\\_»kÏ±q©čiìĉ|ÍI¥ć¥]ª§D{ŝŖÉR_sÿc³ĪōƿÎ§p[ĉc¯bKmR¥{³Ze^wx¹dƽÅ½ôIg §Mĕ ƹĴ¿ǣÜÍ]Ý]snåA{eƭ`ǻŊĿ\\ĳŬűYÂÿ¬jĖqßb¸L«¸©@ěĀ©ê¶ìÀEH|´bRľÓ¶rÀQþvl®ÕETzÜdb hw¤{LRdcb¯ÙVgƜßzÃôì®^jUèXÎ|UäÌ»rK\\ªN¼pZCüVY¤ɃRi^rPŇTÖ}|br°qňbĚ°ªiƶGQ¾²x¦PmlŜ[Ĥ¡ΞsĦÔÏâ\\ªÚŒU\\f¢N²§x|¤§xĔsZPòʛ²SÐqF`ªVÞŜĶƨVZÌL`¢dŐIqr\\oäõFÎ·¤»Ŷ×h¹]ClÙ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ´ÃbEÄlbʔC|CŮkƮ[ʼ¬ň´KŮÈΰÌĪ¶ƶlðļATUvdTGº̼ÔsÊDÔveMg"]],"encodeOffsets":[[[105308,37219],[95370,40081]]]},"properties":{"cp":[101.778916,36.623178],"name":"青海","childNum":2}},{"id":"640000","geometry":{"type":"Polygon","coordinates":["@@KëÀęĞ«Oęȿȕı]ŉ¡åįÕÔ«ǴõƪĚQÐZhv K°öqÀÑS[ÃÖHƖčËnL]ûcÙß@ĝ¾}w»»oģF¹»kÌÏ·{zP§B­¢íyÅt@@á]Yv_ssģ¼ißĻL¾ġsKD£¡N_X¸}B~HaiÅf{«x»ge_bsKF¯¡IxmELcÿZ¤­ĢÝsuBLùtYdmVtNmtOPhRw~bd¾qÐ\\âÙH\\bImlNZ»loqlVmGā§~QCw¤{A\\PKNY¯bFkC¥sks_Ã\\ă«¢ħkJi¯rrAhĹûç£CUĕĊ_ÔBixÅÙĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~hw^ófćKyE­K­zuÔ¡qQ¤xZÑ¢^ļöÜ¾Ep±âbÊÑÆ^fk¬NC¾YpxbK~¥eÖäBlt¿Đx½I[ĒǙWf»Ĭ}d§dµùEuj¨IÆ¢¥dXªƅx¿]mtÏwßRĶX¢͎vÆzƂZò®ǢÌʆCrâºMÞzÆMÒÊÓŊZÄ¾r°Î®Ȉmª²ĈUªĚîøºĮ¦ÌĘk^FłĬhĚiĀĖ¾iİbjË"],"encodeOffsets":[[109366,40242]]},"properties":{"cp":[106.278179,38.46637],"name":"宁夏","childNum":1}},{"id":"650000","geometry":{"type":"Polygon","coordinates":["@@QØĔ²X¨~ǘBºjʐßØvKƔX¨vĊOÃ·¢i@~cĝe_«E}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuXêÎf`C¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥OéÈ¿ÖğǤǷÂFÒzÉx[]­Ĥĝœ¦EP}ûƥé¿İƷTėƫœŕƅƱB»Đ±ēO¦E}`cȺrĦáŖuÒª«ĲπdƺÏØZƴwʄ¤ĖGĐǂZĶèH¶}ÚZצʥĪï|ÇĦMŔ»İĝǈì¥Βba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»òmqóŘĝčË¾ăCćāƿÝɽ©ǱŅ»ēėŊLrÁ®ɱĕģŉǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕUv£ƁQïƵkŏ½ΉÃŭÇ³LŇʻ«ƭ\\lŭD{ʓDkaFÃÄa³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍöůŉT¡c_ËKYƧUśĵÝU_©rETÏʜ±OñtYwē¨{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\śnkOw¥±T»ƷFɯàĩÞáB¹ÆÑUwŕĽw]kE½Èå~Æ÷QyěCFmĭZīŵVÁƿQƛûXS²b½KÏ½ĉS©ŷXĕ{ĕK·¥Ɨcqq©f¿]ßDõU³h­gËÇïģÉɋwk¯í}I·œbmÉřīJɥĻˁ×xoɹīlc¤³Xù]ǅA¿w͉ì¥wÇN·ÂËnƾƍdÇ§đ®ƝvUm©³G\\}µĿQyŹlăµEwǇQ½yƋBe¶ŋÀůo¥AÉw@{Gpm¿AĳŽKLh³`ñcËtW±»ÕSëüÿďDu\\wwwù³VLŕOMËGh£õP¡erÏd{ġWÁč|yšg^ğyÁzÙs`s|ÉåªÇ}m¢Ń¨`x¥ù^}Ì¥H«YªƅAÐ¹n~ź¯f¤áÀzgÇDIÔ´AňĀÒ¶ûEYospõD[{ù°]uJqU|Soċxţ[õÔĥkŋÞŭZËºóYËüċrw ÞkrťË¿XGÉbřaDü·Ē÷AÃª[ÄäIÂ®BÕĐÞ_¢āĠpÛÄȉĖġDKwbmÄNôfƫVÉviǳHQµâFù­Âœ³¦{YGd¢ĚÜO {Ö¦ÞÍÀP^bƾl[vt×ĈÍEË¨¡Đ~´î¸ùÎhuè`¸HÕŔVºwĠââWò@{ÙNÝ´ə²ȕn{¿¥{l÷eé^eďXj©î\\ªÑòÜìc\\üqÕ[Č¡xoÂċªbØ­ø|¶ȴZdÆÂońéG\\¼C°ÌÆn´nxÊOĨŪƴĸ¢¸òTxÊǪMīĞÖŲÃɎOvʦƢ~FRěò¿ġ~åŊúN¸qĘ[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾ĄYÒ©ÊfºmÔĘcDoĬMŬS¤s²ʘÚžȂVŦ èW°ªB|ĲXŔþÈJĦÆæFĚêYĂªĂ]øªŖNÞüAfɨJ¯ÎrDDĤ`mz\\§~D¬{vJÂ«lµĂb¤pŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMTòP÷fØĶK¢ȝ˔Sô¹òEð­`Ɩ½ǒÂň×äı§ĤƝ§C~¡hlåǺŦŞkâ~}FøàĲaĞfƠ¥Ŕd®U¸źXv¢aƆúŪtŠųƠjdƺƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹\\ĜÑŚ¶ZƄ³âjĦoâȴLÊȮĐ­ĚăÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTiƢ¾ªì°`öøu®Ê¾ãÖ"],"encodeOffsets":[[88824,50096]]},"properties":{"cp":[87.617733,43.792818],"name":"新疆","childNum":1}},{"id":"110000","geometry":{"type":"Polygon","coordinates":["@@RºaYÕQaúÍÔiþĩȨWĢü|Ėu[qb[swP@ÅğP¿{\\¯Y²·Ñ¨j¯X\\¯MSvU¯YIŕY{[fk­VÁûtŷmiÍt_H»Ĩ±d`¹­{bwYr³S]§§o¹qGtm_SŧoaFLgQN_dV@Zom_ć\\ßW´ÕiœRcfio§ËgToÛJíĔóu|wP¤XnO¢ÉŦ¯pNÄā¤zâŖÈRpŢZÚ{GrFt¦Òx§ø¹RóäV¤XdżâºWbwŚ¨Ud®bêņ¾jnŎGŃŶnzÚScîĚZen¬"],"encodeOffsets":[[119421,42013]]},"properties":{"cp":[116.405285,39.904989],"name":"北京","childNum":1}},{"id":"120000","geometry":{"type":"Polygon","coordinates":["@@ŬgX§Ü«E¶FÌ¬O_ïlÁgz±AXeµÄĵ{¶]gitgIj·¥ì_iU¨ÐƎk}ĕ{gBqGf{¿aU^fIư³õ{YıëNĿk©ïËZukāAīlĕĥs¡bġ«@dekąI[nlPqCnp{ō³°`{PNdƗqSÄĻNNâyj]äÒD ĬH°Æ]~¡HO¾X}ÐxgpgWrDGpù^LrzWxZ^¨´T\\|~@IzbĤjeĊªz£®ĔvěLmV¾Ô_ÈNW~zbĬvG²ZmDM~~"],"encodeOffsets":[[120237,41215]]},"properties":{"cp":[117.190182,39.125596],"name":"天津","childNum":1}},{"id":"310000","geometry":{"type":"MultiPolygon","coordinates":[["@@ɧư¬EpƸÁx]","@@©²","@@MA","@@QpªKWT§¨","@@bŝÕÕEȣÚƥêImɇǦèÜĠÚÄÓŴ·ʌÇ","@@Sô¤r]ìƬįǜûȬɋŭ×^sYɍDŋŽąñCG²«ªč@h_p¯A{oloY¬j@Ĳ`gQÚpptǀ^MĲvtbe´Rh@oj¨","@@ÆLH{a}Eo¦"]],"encodeOffsets":[[[124702,32062],[124547,32200],[124808,31991],[124726,32110],[124903,32376],[124065,32166],[124870,31965]]]},"properties":{"cp":[121.472644,31.231706],"name":"上海","childNum":7}},{"id":"500000","geometry":{"type":"Polygon","coordinates":["@@TÂÛ`Ùƅően½SêqDu[RåÍ¹÷eXÍy¸_ĺę}÷`M¯ċfCVµqŉ÷Zgg^d½pDOÎCn^uf²ènh¼WtƏxRGg¦pVFI±G^Ic´ecGĹÞ½sëÆNäÌ¤KÓe¯|R¸§LÜkPoïƭNï¶}Gywdiù©nkĈzj@Óc£»Wă¹Óf§c[µo·Ó|MvÛaq½«è\\ÂoVnÓØÍ²«bq¿ehCĜ^Q~ Évýş¤²ĮpEĶyhsŊwH½¿gÅ¡ýE¡ya£³t\\¨\\vú¹¼©·Ñr_oÒý¥et³]Et©uÖ¥±ă©KVeë]}wVPÀFA¨ąB}qTjgRemfFmQFÝMyùnÑAmÑCawu_p¯sfÛ_gI_pNysB¦zG¸rHeN\\CvEsÐñÚkcDÖĉsaQ¯}_UzÁē}^R Äd^ÍĸZ¾·¶`wećJE¹vÛ·HgéFXjÉê`|ypxkAwWĐpb¥eOsmzwqChóUQl¥F^lafanòsrEvfQdÁUVfÎvÜ^eftET¬ôA\\¢sJnQTjPØxøK|nBzĞ»LYFDxÓvr[ehľvN¢o¾NiÂxGpâ¬zbfZo~hGi]öF||NbtOMn eA±tPTLjpYQ|SHYĀxinzDJÌg¢và¥Pg_ÇzIIII£®S¬ØsÎ¼¥¨^LnGĲļĲƤjÎƀƾ¹¸ØÎezĆT¸}êÐqHðqĖä¥^CÆIj²p\\_ æüY|[YxƊæu°xb®Űb@~¢NQt°¶Sæ Ê~rǉĔëĚ¢~uf`faĔJåĊnÔ]jƎćÊ@£¾a®£Ű{ŶĕFègLk{Y|¡ĜWƔtƬJÑxq±ĢN´òKLÈÃ¼D|s`ŋć]Ã`đMùƱ¿~Y°ħ`ƏíW½eI½{aOIrÏ¡ĕŇapµÜƃġ²"],"encodeOffsets":[[111728,31311]]},"properties":{"cp":[106.504962,29.533155],"name":"重庆","childNum":1}},{"id":"810000","geometry":{"type":"MultiPolygon","coordinates":[["@@AlFi","@@mp","@@EpHo","@@rMUwAS¬]","@@ea¢pl¸Eõ¹hj[]ÔCÎ@lj¡uBX´AI¹[yDU]W`çwZkmcMpÅv}IoJlcafŃK°ä¬XJmÐ đhI®æÔtSHnEÒrÄc"]],"encodeOffsets":[[[117111,23002],[117072,22876],[117045,22887],[116882,22747],[116975,23082]]]},"properties":{"cp":[114.173355,22.320048],"name":"香港","childNum":5}},{"id":"820000","geometry":{"type":"Polygon","coordinates":["@@áw{Îr"],"encodeOffsets":[[116285,22746]]},"properties":{"cp":[113.54909,22.198951],"name":"澳门","childNum":1}}],"UTF8Encoding":true});
}));
/**
 * Created by liekkas.zeng on 2015/1/7.
 */
angular.module('ng-echarts',[])
    .directive('ngEcharts',[function(){
        return {
            link: function(scope,element,attrs,ctrl){
                function refreshChart(){
                    var theme = (scope.config && scope.config.theme)
                        ? scope.config.theme : 'default';
                    var chart = echarts.init(element[0],theme);
                    if(scope.config && scope.config.dataLoaded === false){
                        chart.showLoading();
                    }

                    if(scope.config && scope.config.dataLoaded){
                        chart.resize();
                        chart.setOption(scope.option);

                        chart.hideLoading();
                    }

                    if(scope.config && scope.config.event){
                        if(angular.isArray(scope.config.event)){
                            angular.forEach(scope.config.event,function(value,key){
                                for(var e in value){
                                    chart.on(e,value[e]);
                                }
                            });
                        }
                    }
                };

                //自定义参数 - config
                // event 定义事件
                // theme 主题名称
                // dataLoaded 数据是否加载

                scope.$watch(
                    function () { return scope.config; },
                    function (value) {if (value) {refreshChart();}},
                    true
                );

                //图表原生option
                scope.$watch(
                    function () { return scope.option; },
                    function (value) {if (value) {refreshChart();}},
                    true
                );
            },
            scope:{
                option:'=ecOption',
                config:'=ecConfig'
            },
            restrict:'EAC'
        }
    }]);

/**
 * Created by yuanlian on 2016/3/24.
 */
angular.module('ng-datepicker',[])
    .directive('datePicker', [ function(){
        return {
            restrict: 'EC',
            require: '?ngModel',
            scope:{
                opens:'=opens',
                startDate:'=startDate',
                endDate:'=endDate',
                singleDatePicker:'=singleDatePicker'
            },
            replace: true,
            link: function (scope, element) {

                $(element).daterangepicker({
                    ranges:{
                        '今天': [moment(), moment()],
                        '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)],
                        '过去七天': [moment().subtract('days', 6), moment()],
                        '过去30天': [moment().subtract('days', 29), moment()],
                        '本月': [moment().startOf('month'), moment().endOf('month')],
                        '上月': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
                    },
                    format:'YYYY-MM-DD',
                    singleDatePicker:scope.singleDatePicker||false,
                    startDate: scope.startDate||moment().subtract('days', 29),
                    endDate:scope.endDate||moment(),
                    minDate: "2016-01-01"
                }, function(start, end) {
                    scope.$apply(function () {
                        scope.startDate=start.format('YYYY-MM-DD');
                        scope.endDate=end.format('YYYY-MM-DD')
                    })

                });


            },
            template: '<input  class="form-control" type="text" placeholder="选择时间" >   '
        };
    }]);
function ReadableFilter() {
    return function ReadableFilterFunction(input, type) {
        if (_.isNull(input) || (_.isString(input) && input === ''))
            return '-'

        if (type === 'datetime')
            return moment(input).format('YYYY-MM-DD HH:MM:SS')

        if (type === 'date')
            return moment(input).format('YYYY-MM-DD')
        if(type=='minsec')
            return moment(input).format('mm:SS')
        if (_.isNumber(input) && type === 'phone') {
            var input = '' + input
            return [input.slice(0, 3), input.slice(3, 7), input.slice(7, 11)].join(' ')
        }

        var orgFlags = {
            'P': '个人',
            'O': '公司'
        }
        if (type === 'flag') return orgFlags[input]

        var roleTypes = {
            'A': '超级管理员',
            'B': '公司管理员',
            'C': '普通用户'
        }
        if (type === 'role') return roleTypes[input]


        var integralSource = {
            'U': '用户积分',
            'M': '版主额度积分',
            'A': '后台手动积分'
        }
        if (type === 'source') return integralSource[input]

        var annexations = {
            'A': '附件',
            'B': '约会',
            'C': '投票',
            'D': '图片',
            'E': '抽奖',
            'T': '标签'
        }
        if (type === 'annexation') {
            var result = input.split('').map(function(value) {
                return annexations[value]
            })

            if (result.length > 1) { return result.join(' ') }
            return result.join('')
        }

        var origins = [ 'Web', 'iOS', 'Android', 'RSS', 'E-mail', '微博', '微信' ]
        if (type === 'origin') return origins[input]

        var systemConfig = {
            "smsswitch":        "短信",
            "sysmonitorswitch": "监控",
            "pushswitch":       "推送",
            "chatswitch":       "聊天",
            "mailswitch":       "邮件"
        }
        if (type === 'systemConfig') return systemConfig[input]

        if (type === 'smsMark') {
            return input.replace(/(S)|(F)/, function(match) {
                if (match === 'S') { return '成功' }
                if (match === 'F') { return '失败' }
            })
        }

        var crud = {
            'C': '创建',
            'R': '读取',
            'U': '更新',
            'D': '删除'
        }
        if (type === 'crud') return crud[input]

        if (type === 'ms') return input + ' 毫秒'

        if (type === 'booking') {
            var startTime = _timingTransform('' + input)
            var endInput = input + 30
            var endTime   = _timingTransform('' + ((endInput)%100 == 60 ? endInput + 40 : endInput))

            return startTime + '~' + endTime
        }

        function _timingTransform(input) {
            var pos = input.length == 3 ? 1 : 2
            return [input.slice(0, pos), ':', input.slice(pos)].join('')
        }

        return input
    }
}

function ReplaceFilter() {
    return function ReplaceFilterFunction(input, pattern, substitution) {
        if (_.isString(input) && (input.search(new RegExp(pattern, 'i')) !== -1))
            return input.replace(pattern, substitution)

        return input
    }
}

function RoleCheckerService() {
    var ADMIN_PATTERN    = /\badmin\b/i
    var SUB_ADMIN_PATTERN = /\bsubadmin\b/i

    function RoleChecker(roleNames) {
        this.roles = roleNames

        this.isAdmin = (function() {
            return ADMIN_PATTERN.test(roleNames)
        }())

        this.isSubAdmin = (function() {
            return SUB_ADMIN_PATTERN.test(roleNames)
        }())
    }

    return RoleChecker
}

function Sorter(order, reverse) {
    this.order = order || 'id'
    this.reverse = reverse || false
    this.doneOnce = false
}

Sorter.prototype.reorder = function(order) {
    if (this.order === order) {
        if (this.doneOnce) {
            this.order = 'id'
            this.doneOnce = !this.doneOnce
        } else {
            this.reverse = !this.reverse
            this.doneOnce = !this.doneOnce
        }
    } else {
        this.order = order
        this.reverse = false
        this.doneOnce = false
    }
}

function SorterService() {
    return {
        init: function _SorterServiceInitialize(options) {
            return new Sorter(options.order, options.reverse)
        }
    }
}

/**
 * Created by yuanlian on 2016/10/27.
 */
angular.module('ng-target', [])
    .directive('selectTarget', [function () {
        return {
            restrict: 'EC',
            require: '?ngModel',
            scope: {
                selection: '=selection',
                content: '=content',
                limit: '=limit'
            },
            replace: true,
            link: function (scope, element, timeout) {

                scope.targetShow = false
                scope.groups = _.groupBy(scope.content, 'category')

                scope.onlyThisOne = function (id) {
                    var idx = scope.selection.indexOf(id);
                    if (idx > -1 && scope.selection.length == 1) {

                        return true
                    }
                    return false
                }
                scope.openTarget = function () {
                    scope.targetShow = !scope.targetShow
                }
                scope.toggleSelection = function (item) {
                    var idx = scope.selection.indexOf(item.id);

                    if (idx > -1) {
                        if (scope.selection.length == 1) {
                            console.info('click')
                            return
                        }
                        scope.selection.splice(idx, 1);
                    }
                    else {
                        scope.selection.push(item.id);
                        if (scope.selection.length > scope.limit) {

                            scope.selection.splice(0, 1);
                            return
                        }


                    }
                }
                scope.blur = function () {
                    scope.targetShow = false
                }


            },
            template: '<div class="target-group" ng-blur="blur()" tabindex=1 style="outline: none"><div class="button-target" ng-click="openTarget()">指标：<span ng-repeat="id in selection">{{content[id].name}} </span>' +
            ' <i class="fa fa-sort-down" ng-if="!targetShow"></i><i class="fa fa-caret-up" ng-if="targetShow"></i></div>' +
            ' <div class="target-open" ng-if="targetShow">' +
            '<div class="target-tip"><span>提示：可同时选择</span><span ng-bind="limit"></span><span>项</span></div>' +
            '<li class="target-li"ng-repeat="ii in groups">' +
            '<div class="target-category "ng-repeat="item in ii">' +
            '  <ul class="col-md-4"  ng-click="toggleSelection(item)">' +
            '<i class="fa fa-check-square-o" ng-if="selection.indexOf(item.id) > -1"></i>' +
            '<i class="fa fa-square-o" ng-if="selection.indexOf(item.id) <= -1"></i>{{::item.name}}</ul>' +
            '</div>' +
            '<div class=" col-md-12 target-hh"></div>'+
            // ' <li class="target-li" style="list-style-type:none;" ng-repeat="item in content track by item.id">' +
            // ' <ul class="col-md-4"  ng-click="toggleSelection(item)">' +
            // '<i class="fa fa-check-square-o" ng-if="selection.indexOf(item.id) > -1"></i>' +
            // '<i class="fa fa-square-o" ng-if="selection.indexOf(item.id) <= -1"></i>{{::item.name}}' +
            // ' </ul> ' +
            ' </li>' +

            '</div>' +
            ' </div>  '
        };
    }]);

function uiBootstrapConfiguration(uibPaginationConfig) {
    uibPaginationConfig.boundaryLinks  = true
    uibPaginationConfig.firstText      = "首页"
    uibPaginationConfig.lastText       = "尾页"
    uibPaginationConfig.directionLinks = true
    uibPaginationConfig.previousText   = "上页"
    uibPaginationConfig.nextText       = "下页"
    uibPaginationConfig.rotate         = false
    uibPaginationConfig.maxSize        = 10
}

function uiSelectConfiguration(uiSelectConfig) {
    uiSelectConfig.theme = 'bootstrap'
}

function DemoController(
    initialList,//路由中预加载数据的注入
    Stream,
    Sorter,
    Demo,
    $uibModal,
    $log,
    $scope,
    $state,
    $stateParams
) {
    var vm = this

    initialList.$promise.then(function(response) {
        // 将后台返回的数据填充
        vm.users=response.content

        // 是否显示分页
        vm.isLoaded = true;
        vm.queryParams = _.clone($stateParams)
        vm.totalItems = response.totalElements
        vm.totalPages = response.totalPages
    })


    // 点击delete事件调用该函数
    vm.delete = function(user) {
        // 模拟窗口打开之后执行该函数
        var modalInstance = $uibModal.open({
            templateUrl: 'myModalContent.html',
            controller: 'ModalInstanceCtrl',
            size: user
        });

        // 模拟窗口关闭后回传调用
        modalInstance.result.then(function (selectedItem) {
            if(selectedItem == 'ok') {
                Demo.delete({
                    id : user.id
                }).$promise.then(function(){
                    $state.reload($state.current)
                })
            }
        });
    }

    // 去除查询条件
    vm.reset = function(parameter) { vm.queryParams = {}; }

    // 查询调用
    vm.search = function() {
        $state.go($state.current, vm.queryParams)
    }

    vm.register = function() {
        $state.go('userAdd' , vm.queryParams)
    }

    vm.update = function(user) {
        $state.go('userUpdate' , {'id':user.id,'user_name':user.user_name})
    }
}


function DemoModel($http, API, $resource) {
    var transforms = $http.defaults.transformResponse
    this.actions = {}

    //配置后台接口地址
    this.actions.search = {
        method: 'POST',
        url: API + '/mobile/webUser/userList'
        // isArray:true,//当后台返回数组时需要这个参数
    }

    this.actions.delete = {
        method: 'GET',
        url: API + '/mobile/webUser/deleteUser/:id'
    }
    this.actions.add={
        method: 'POST',
        url: API + '/mobile/webUser/update'
    }
    this.actions.download={
        method: 'POST',
        url: API + '/mobile/webUser/download'
    }

    var Model = $resource.call(this, this.url, this.params, this.actions)

    return Model
}

angular.module('demo', [])//模块名，注入到admin 主模块中

.config(["$stateProvider", function DemoRoutes($stateProvider) {
    $stateProvider
        .state('userList', {//路由名称
            parent: 'admin',
            url: '/userList?{user_name:string}',//url以及参数定义
            params: {
                page: { value: 1, squash: true },//初始化url中的参数，不需要可以不写
                size: { value: 10, squash: true }
            },
            views: {
                'main@admin': {
                    templateUrl: 'admin/demo/list.html',//html地址
                    controller: 'DemoController as vm',//控制器和他的别名
                    resolve: {
                        initialList: ["Demo", "$stateParams", function(Demo, $stateParams) {//从后台预加载的数据,Demo-注入的service
                            return Demo.search({
                                user_name : $stateParams.user_name,
                                pageInfo: {
                                    pageSize: $stateParams.size,
                                    pageNumber: $stateParams.page
                                }
                            })
                        }]
                    }
                }
            }
        })

        .state('userAdd',{
            url: '/userAdd',
            controller: 'DemoAddController as vm',//控制器和他的别名
            templateUrl: 'admin/demo/userAdd.html'
        })

        .state('userUpdate',{
            url: '/userUpdate?{id:int}&{user_name:string}',
            controller: 'DemoUpdateController as vm',//控制器和他的别名
            templateUrl: 'admin/demo/userUpdate.html'
        })

}])

.service('Demo', DemoModel)//声明

.controller('DemoController', DemoController)
.controller('DemoAddController',DemoAddController)
.controller('DemoUpdateController',DemoUpdateController)
.controller('ModalInstanceCtrl', ["$scope", "$uibModalInstance", function ($scope, $uibModalInstance) {
    $scope.ok = function () {
        $uibModalInstance.close('ok');
    };

    $scope.cancel = function () {
        $uibModalInstance.close('cancel');
        //$uibModalInstance.dismiss('cancel');
    };
}])


/**
 * Created by zhangwj on 2017/1/11.
 */
function DemoAddController(Demo,Upload,API,$http,$uibModal,$scope,$state,$stateParams){
    var vm=this;
    vm.add=function(){
        vm.queryParams = _.clone($stateParams)
        Demo.add(vm.user).$promise.then(function(response){
            //处理add之后的返回结果
            if(response.success != null) {
                // 模拟窗口打开之后执行该函数
                var modalInstance = $uibModal.open({
                    templateUrl: 'myModalContent.html',
                    controller: 'ModalInstanceCtrl',
                    size: Demo
                });

                // 模拟窗口关闭后回传调用
                modalInstance.result.then(function () {
                    $state.go('userList', vm.queryParams)
                });
            } else {
                $scope.serverError = response.fail
            }
        })
    }

    vm.cancel = function() {
        $http({
            url: API + '/mobile/webUser/download',
            method: "POST",
            headers: {
                'Content-type': 'application/json'
            },
            responseType: 'arraybuffer'
        }).then(function(response) {
            var blob = new Blob([response.data], {type: "application/octet-stream"});
            var a = document.createElement("a");
            document.body.appendChild(a);
            a.download = response.headers("fileName");
            a.href = URL.createObjectURL(blob);
            a.click();
        });

        // Demo.download({
        // }).$promise.then(function(response){
        //     console.info(response)
        // })
        // $state.go('userList', vm.queryParams);
    }

    vm.upload = function(files) {
        if (files && files.length) {
            vm.files = files
            vm.form.$invalid = vm.uploading = true

            _.forEach(files, function(file) {
                vm.file=file;

                Upload.upload({ url: API + '/mobile/webUser/upload', file: file })
                    .progress(function(event) {
                        // TODO: maybe to implement a progress bar?
                        vm.progress = parseInt(100.0 * event.loaded / event.total)
                        //console && console.info('进度：' + vm.progress + '%')
                    })
                    .success(function(response) {
                        // vm.appRelease.fileUrl = response.data
                        vm.form.$invalid = vm.uploading = false
                    })
                    .error(function(response) {

                        vm.files = undefined
                        vm.form.$invalid = vm.uploading = false
                        debugger
                    })
            })
        }
    }


    //验证重复密码是否相同
    $scope.$watch('vm.user', function (newValue, oldValue) {
        if (newValue) {
            if (newValue.pass_word_reply) {
                if (!_.isEqual(newValue.pass_word_reply, newValue.pass_word)) {
                    vm.pwdInvalid = true
                    vm.form.pass_word_reply.$invalid = true
                    vm.form.$invalid = true
                } else {
                    vm.pwdInvalid = false
                    vm.form.pass_word_reply.$invalid = false
                }
            }
        }
    }, true)
}

/**
 * Created by zhangwj on 2017/1/11.
 */
function DemoUpdateController(Demo,$uibModal,$scope,$state,$stateParams){
    var vm=this
    vm.user = {user_name:$stateParams.user_name}
    vm.user.id = $stateParams.id

    vm.add = function() {
        Demo.add(vm.user).$promise.then(function(response){
            //处理add之后的返回结果
            if(response.success != null) {
                // 模拟窗口打开之后执行该函数
                var modalInstance = $uibModal.open({
                    templateUrl: 'myModalContent.html',
                    controller: 'ModalInstanceCtrl',
                    size: Demo
                });

                // 模拟窗口关闭后回传调用
                modalInstance.result.then(function () {
                    $state.go('userList', vm.queryParams)
                });
            } else {
                $scope.serverError = response.fail
            }
        })
    }

    vm.cancel = function() {
        $state.go('userList', vm.queryParams);
    }

    //验证重复密码是否相同
    $scope.$watch('vm.user', function (newValue, oldValue) {
        if (newValue) {
            if (newValue.pass_word_reply) {
                if (!_.isEqual(newValue.pass_word_reply, newValue.pass_word)) {
                    vm.pwdInvalid = true
                    vm.form.pass_word_reply.$invalid = true
                    vm.form.$invalid = true
                } else {
                    vm.pwdInvalid = false
                    vm.form.pass_word_reply.$invalid = false
                }
            }
        }
    }, true)
}

/**
 * Created by chaoCheng on 2017/1/12.
 */
function PlayPlanController(
    initialList,//路由中预加载数据的注入
    Stream,
    Sorter,
    Demo,
    PlayPlan,
    $uibModal,
    $log,
    $scope,
    $state,
    $stateParams
) {
    var vm = this

    initialList.$promise.then(function(response) {
        // 将后台返回的数据填充
        vm.playplans=response.content

        // 是否显示分页
        vm.isLoaded = true;
        vm.queryParams = _.clone($stateParams)
        vm.totalItems = response.totalElements
        vm.totalPages = response.totalPages
    })


    // 点击delete事件调用该函数
    vm.delete = function(playplan) {
        // 模拟窗口打开之后执行该函数
        var modalInstance = $uibModal.open({
            animation: $scope.animationsEnabled,
            templateUrl: 'deletePlayPlanContent.html',
            controller: 'PlayPlanInstanceCtrl',
            size: playplan
        });

        // 模拟窗口关闭后回传调用
        modalInstance.result.then(function (selectedItem) {
            if(selectedItem == 'ok') {
                PlayPlan.delete({
                    id : playplan.id
                }).$promise.then(function(){
                    $state.reload($state.current)
                })
            }
        });
    }

    // 去除查询条件
    vm.reset = function(parameter) { vm.queryParams = {}; }

    // 查询调用
    vm.search = function() {
        $state.go($state.current, vm.queryParams)
    }

    vm.register = function() {
        $state.go('user.add')
    }

}



/**
 * Created by chaoCheng on 2017/1/12.
 */
function PlayPlanModel($http, API, $resource) {
    var transforms = $http.defaults.transformResponse
    this.actions = {}

    //配置后台接口地址
    this.actions.search = {
        method: 'POST',
        url: API + '/playPlanContoller/playPlanList'
        // isArray:true,//当后台返回数组时需要这个参数
    }

    this.actions.delete = {
        method: 'GET',
        url: API + '/playPlanContoller/deletePlayPlan/:id'
    }

    var Model = $resource.call(this, this.url, this.params, this.actions)

    return Model
}

/**
 * Created by chaoCheng on 2017/1/12.
 */
angular.module('playPlan', [])//模块名，注入到admin 主模块中
    .config(["$stateProvider", function PlayplanRoutes($stateProvider) {
        $stateProvider
            .state('playplan', {//路由名称
                parent: 'admin',
                url: '/playplan?{planName:string}',//url以及参数定义
                params: {
                    page: { value: 1, squash: true },//初始化url中的参数，不需要可以不写
                    size: { value: 10, squash: true }
                },
                views: {
                    'main@admin': {
                        templateUrl: 'admin/plan/list.html',//html地址
                        controller: 'PlayPlanController as vm',//控制器和他的别名
                        resolve: {
                            initialList: ["PlayPlan", "$stateParams", function(PlayPlan, $stateParams) {//从后台预加载的数据,Demo-注入的service
                                return PlayPlan.search({
                                    planName : $stateParams.planName,
                                    pageInfo: {
                                        pageSize: $stateParams.size,
                                        pageNumber: $stateParams.page
                                    }
                                })
                            }]
                        }
                    }
                }
            })


    }])

    .service('PlayPlan', PlayPlanModel)//声明

    .controller('PlayPlanController', PlayPlanController)



    .controller('PlayPlanInstanceCtrl', ["$scope", "$uibModalInstance", function ($scope, $uibModalInstance) {
        $scope.ok = function () {
            $uibModalInstance.close('ok');
        };

        $scope.cancel = function () {
            $uibModalInstance.close('cancel');
            //$uibModalInstance.dismiss('cancel');
        };
    }]);


function RobotController(
    initialList,//路由中预加载数据的注入
    Stream,
    Sorter,
    User,
    ConfirmModal,
    $scope,
    $state,
    $stateParams
) {
    var vm = this;

    initialList.$promise.then(function(response) {
        var rusersesultObj = response.page;
        vm.robots=rusersesultObj.content;
        vm.isLoaded = true;
        vm.queryParams = _.clone($stateParams)
        vm.totalItems = rusersesultObj.totalElements
        vm.totalPages = rusersesultObj.totalPages
    })

    vm.delete = function(stream) {
        ConfirmModal.open($scope, { title:  '确定删除吗？' })
            .then(function(response) { return stream.$delete() })
            .then(function(response) { $state.reload($state.current) })
            .catch(console.error.bind(console))



    }

    vm.reset = function(parameter) { vm.queryParams = {}; }

    vm.search = function() { $state.go($state.current, vm.queryParams) }

}


function RobotModel($http, API, $resource) {
    var transforms = $http.defaults.transformResponse
    this.actions = {}

    //机器人列表
    //this.actions.search = {
    //    method: 'POST',
    //    url: API + '/robot/robotList',
    //    isArray:true,//当后台返回数组时需要这个参数
    //}

    this.actions.search = {
        method: 'POST',
        url: API + '/robot/robotList',
    }


    //修改机器人
    this.actions.edit = {
        method: 'GET',
        url: API + '/robot/edit',
    }

    //删除机器人
    this.actions.delete = {
        method: 'GET',
        url: API + '/robot/delete',
    }


    var Model = $resource.call(this, this.url, this.params, this.actions)

    return Model
}

angular.module('robot', [])

    .config(["$stateProvider", function RobotRoutes($stateProvider) {
        $stateProvider

            .state('robotList', {//路由名称
                parent: 'admin',
                url: '/robotList?{robotNumber:string}&{groupId:string}',//url以及参数定义
                params: {
                    page: { value: 1, squash: true },//初始化url中的参数，不需要可以不写
                    size: { value: 10, squash: true }
                },
                views: {
                    'main@admin': {
                        templateUrl: 'admin/robot/list.html',//html地址
                        controller: 'RobotController as vm',//控制器和他的别名
                        resolve: {
                            initialList: ["Robot", "$stateParams", function(Robot, $stateParams) {//从后台预加载的数据,Demo-注入的service
                                return Robot.search({
                                    robotNumber: $stateParams.robotNumber,
                                    groupId: $stateParams.groupId,
                                    pageInfo: {
                                        pageSize: $stateParams.size,
                                        pageNumber: $stateParams.page
                                    }
                                })
                            }]
                        }
                    }
                }
            })
            .state('robotEdit', {
                url: '/robotEdit/{id:string}',
                params: { value: '%2F', squash: true },
                templateUrl: 'admin/robot/edit.html',
                controller: 'RobotController as vm'
            })
            //.state('robot.delet',{
            //    url: '/robotEdit/{id:string}',
            //    params: { value: '%2F', squash: true },
            //    templateUrl: 'admin/robot/edit.html',
            //    controller: 'RobotController as vm'
            //})
    }])

    .service('Robot', RobotModel)//声明

    .controller('RobotController', RobotController)

/**
 * Created by yuanlian on 2016/8/8.
 */
function RegisterController($scope, Register,$state,$timeout,store,User,API,$http) {
    var vm = this;
    var updateClock=function(){
        if(vm.getCheckSec==0){
            clearInterval(vm.timer1)
            return
        }
        vm.getCheckSec--;
    }
    //获取验证码
    vm.getSecurityCode = function () {
        if (!vm.form.mobile.$valid) {
            vm.mobileInvalid = true
            vm.securityCodeMsg = '请输入正确格式的手机号'

            return
        }
        vm.mobileInvalid = false

        Register.getSecurityCode({phone: vm.user.mobile}).$promise.then(function (response) {

            vm.getCheckSec = 300
            vm.timer1=setInterval(function () {
                $scope.$apply(updateClock());
            }, 1000);
        }).catch(function(error){

            vm.mobileInvalid = true
            vm.securityCodeMsg =error.message
        })



    }

    //注册
    vm.register=function(user){
        vm.registerSending=true
        var params={
            securityCode:user.securityCode,
            mobilePhone:user.mobile,
            mail:user.email,
            password:user.password
        }
        Register.register(params).$promise.then(function(response){
            vm.session={
                password:user.password,
                username:user.mobile
            }
            $http.post(API + '/weblogin', vm.session)

                // 根据 ID 查询登录用户信息
                .then(function(response) {
                    response.data.imageDiyBgVo = JSON.parse(response.data.imageDiyBgVo)
                    store.set('loginInfo', response.data)
                    return User.getSelf().$promise
                })

                // 记住当前用户并跳转
                .then(function(user) {
                    store.set('currentAdmin', user)
                    var expireDate = new Date();
                    expireDate.setDate(expireDate.getDate() + 3);
                    store.set('expireDate', expireDate)
                    $state.go('web.list')
                })

                // 捕获错误
                .catch(function(rejection) {
                    vm.flash = rejection
                    $timeout(function() { delete vm.flash }, 3000)
                })

        })
            .catch(function(error){
                vm.flash = error
                $timeout(function() { delete vm.flash }, 3000)
            })
    }

    vm.cancel=function(){
        $state.go('session.signin')
    }

    //验证重复密码是否相同
    $scope.$watch('vm.user', function (newValue, oldValue) {
        if (newValue) {
            if (newValue.passwordReply) {
                if (!_.isEqual(newValue.passwordReply, newValue.password)) {
                    vm.pwdInvalid = true
                    vm.form.passwordReply.$invalid = true

                } else {
                    vm.pwdInvalid = false
                    vm.form.passwordReply.$invalid = false
                }
            }


        }
    }, true)
}
/**
 * Created by yuanlian on 2016/8/8.
 */
function RegisterModel(API, $resource){
    this.url     = API + '/api/appCarBrand/getCarBrandById/:id'
    this.params  = { id: '@id' }
    this.actions = {}

    this.actions.getSecurityCode = {
        method: 'GET',
        url: API + '/api/v1/analytics/sendMail/:phone',

    }
    this.actions.register = {
        method: 'POST',
        url: API + '/api/v1/analytics/register',

    }




    return $resource.call(this, this.url, this.params, this.actions)
};
angular.module('session', [])

.config(["$stateProvider", function SessionRoute($stateProvider) {
    $stateProvider

    .state('session', {
        abstract: true,
        template: '<main ui-view></main>'
    })

    .state('session.signin', {
        url: '/signin?{referer:string}',
        params: { value: '%2F', squash: true },
        templateUrl: 'admin/session/signin.html',
        controller: 'SigninController as vm'
    })
        .state('session.register', {
            url: '/register',
            templateUrl: 'admin/session/register.html',
            controller: 'RegisterController as vm'
        })
        .state('session.success',{
            url: '/success',
            templateUrl: 'admin/session/success.html',
            controller:'SuccessController as vm'
        })
}])
    .config(["$stateProvider", function cloudRoute($stateProvider) {
        $stateProvider

            .state('cloud', {
                parent: 'title',
                url: '/cloud',
                params: {
                    page: {value: 1, squash: true},
                    size: {value: 10, squash: true}
                },

                templateUrl: 'admin/eventCloud/eventCloud.html',
                controller: 'CloudController as vm',
                resolve: {}

            })

    }])

    .controller('SigninController', SigninController)
    .controller('RegisterController', RegisterController)
    .controller('SuccessController', ["$state", "$scope", function SuccessController($state,$scope){
        var vm=this;
        vm.sec=5
        var updateClock=function(){
            if(vm.sec==0){
                clearInterval(vm.timer1)
                $state.go('session.signin')
                return
            }
            vm.sec--;
        }
        vm.timer1=setInterval(function () {
            $scope.$apply(updateClock());
        }, 1000);
    }])
    .service('Register',RegisterModel)

function SigninController($http,
                          API,
                          //$uibModal,
                          User,
                          Meta,
                          store,
                          $state,
                          $timeout) {
    var vm = this

    vm.session = {}

    vm.signin = function () {
        // 发起登录请求
        $http.post(API + '/weblogin', vm.session)

            // 根据 ID 查询登录用户信息
            .then(function (response) {
                //response.data.imageDiyBgVo = JSON.parse(response.data.imageDiyBgVo)
                console.info(response.data);
                store.set('loginInfo', response.data)
                //return User.getSelf().$promise
            })

            // 记住当前用户并跳转
            .then(function (user) {
                console.info(document.domain)
                console.info("--------------"+user);
                store.set('currentAdmin', user)
                $state.go('noPage')
            })

            // 捕获错误
            .catch(function (rejection) {
                vm.flash = rejection
                $timeout(function () {
                    delete vm.flash
                }, 3000)
            })
    }

    vm.meta = Meta
    vm.meta.thisYear = moment().year()
}

function StreamModel($http, API, $resource) {
    var transforms = $http.defaults.transformResponse

    this.url = API + '/console/2.0/stream'
    this.params = { id: '@id' }
    this.actions = {}

    this.actions.search = {
        method: 'POST',
        url: API + '/console/2.0/stream/queryStream'
    }

    this.actions.delete = {
        method: 'GET',
        url: API + '/console/2.0/stream/delete/:id'
    }

    var Model = $resource.call(this, this.url, this.params, this.actions)

    Object.defineProperties(Model.prototype, {
        status: {
            enumerable: true,
            get: function() {
                var isUndefined = _.isUndefined(this.streamType)
                var isDrafted = this.streamType === 'D'

                if (isUndefined || isDrafted) { return '未发表' }
                if (this.streamType === 'M') { return '已发表' }
                if (this.streamType === 'A') { return '待审批' }

                return this.streamType
            },
            set: function(value) { this.streamType = value }
        }
    })

    return Model
}

function StreamsController(
    initialList,
    Stream,
    Sorter,
    User,
    ConfirmModal,
    $scope,
    $state,
    $stateParams
) {
    var vm = this

    initialList.$promise.then(function(response) {
        vm.isLoaded = response.$resolved
        vm.streams = _.map(response.content,
                           function(stream) { return new Stream(stream) })

        vm.sorter = Sorter.init({
            order: response.sort.property,
            reverse: !response.sort.ascending
        })

        vm.queryParams = _.clone($stateParams)
        vm.totalItems = response.totalElements
        vm.totalPages = response.totalPages
    })

    $scope.$watchCollection('vm.' + $state.current.name, function(newValue, oldValue) {
        vm.isEmpty = (!_.isEqual(newValue, oldValue)) && _.isEmpty(newValue)
    })

    vm.search = function() { $state.go($state.current, vm.queryParams) }

    vm.getUsers = function(value) {
        User.search({ loginName: value, aliasName: value }).$promise
        .then(function(response) { vm.users = response.content })
    }

    vm.delete = function(stream) {
        ConfirmModal.open($scope, { title:  '确定删除吗？' })
        .then(function(response) { return stream.$delete() })
        .then(function(response) { $state.reload($state.current) })
        .catch(console.error.bind(console))
    }
}

angular.module('streams', [])

.config(["$stateProvider", function StreamsRoutes($stateProvider) {
    $stateProvider.state('streams', {
        parent: 'admin',
        url: '/streams?{title:string}&{name:string}&{page:int}&{size:int}',
        params: {
            title: null,
            name: null,
            page: { value: 1, squash: true },
            size: { value: 10, squash: true }
        },
        views: {
            'main@admin': {
                templateUrl: 'admin/streams/list.html',
                controller: 'StreamsController as vm',
                resolve: {
                    initialList: ["Stream", "$stateParams", function(Stream, $stateParams) {
                        return Stream.search({
                            titleName: $stateParams.title,
                            createByName: $stateParams.name,
                            pageInfo: {
                                pageSize: $stateParams.size,
                                pageNumber: $stateParams.page
                            }
                        })
                    }]
                }
            }
        }
    })
}])

.service('Stream', StreamModel)

.controller('StreamsController', StreamsController)

function UserModel(API, $resource) {
    this.url     = API + '/console/2.0/user/:id'
    this.params  = { id: '@id' }
    this.actions = {}

    this.actions.search = {
        method: 'POST',
        url: API + '/console/2.0/user/list'
    }

    this.actions.find = {
        method: 'GET',
        url: API + '/console/2.0/meeting/user/:id',
        isArray: true
    }

    this.actions.register = {
        method: 'POST',
        url: API + '/console/2.0/user/register'
    }

    this.actions.updateInfo = {
        method: 'POST',
        url: API + '/console/2.0/user/update/info'
    }

    this.actions.updatePassword = {
        method: 'POST',
        url: API + '/console/2.0/user/update/pwd'
    }

    this.actions.export = {
        method: 'GET',
        url: API + '/console/2.0/user/export'
    }

    this.actions.toggle = {
        method: 'GET',
        url: API + '/console/2.0/user/disable/:id/:isLock'
    }

    this.actions.getSelf = {
        method: 'GET',
        url: API + '/mobile/webUser/userDetail/0'
    }

    this.actions.integral = {
        method: 'POST',
        url: API + '/console/2.0/integral/total/maintain'
    }

    this.actions.findByTrueName = {
        method: 'GET',
        url: API + '/console/2.0/meeting/user',
        isArray: true
    }

    this.actions.updateRole = {
        method: 'POST',
        url: API + '/console/2.0/user/update/role'
    }
    this.actions.permissions = {
        method: 'GET',
        url: API + '/console/2.0/role/allPermissions',
        isArray: true
    }

    return $resource.call(this, this.url, this.params, this.actions)
}

function UsersController(
    users,
    User,
    roles,
    Department,
    AdminInfo,
    Sorter,
    AsidePanel,
    Upload,
    API,
    $scope,
    $state,
    $stateParams,
    $q,
    $window
) {
    var vm = this

    users.$promise.then(function(response) {
        vm.isLoaded = response.$resolved
        vm.users = _.map(response.content,
                         function(item) { return new User(item) })

        vm.sorter = Sorter.init({
            order: response.sort.property,
            reverse: !response.sort.ascending
        })

        vm.queryParams = _.clone($stateParams)
        vm.totalItems = response.totalElements
        vm.totalPages = response.totalPages
    })

    vm.roles = roles

    $scope.$watchCollection('vm.' + $state.current.name, function(newValue, oldValue) {
        vm.isEmpty = (!_.isEqual(newValue, oldValue)) && _.isEmpty(newValue)
    })

    vm.search = function() { $state.go($state.current, vm.queryParams) }
    vm.reset = function(parameter) { vm.queryParams = {}; vm.search() }

    vm.getDepartments = function(name) {
        Department.search({
            orgId: AdminInfo.currentAdmin.userInfo.orgId,
            departmentName: name
        }).$promise.then(function(response) { vm.departments = response.content })
    }

    vm.register = function() {
        vm.formMode = 'create'

        // 初始化新用户的缺省属性值 & 创建模型
        var _defaultUserProperties = {
            allowLoginFromMobile: 1,
            receiveMessage: 1,
            viewPhone: 1,
        }
        vm.user = new User(_defaultUserProperties)

        AsidePanel.open($scope, {
            title: '添加用户',
            contentTemplate: 'admin/users/register.html'
        })
        .then(function(result) { return vm.user.$register() })
        .then(function(result) { $state.reload() })
        .catch(console.error.bind(console))
    }

    // 如果手机登录选择禁止，就置否接受推送
    $scope.$watch('vm.user.allowLoginFromMobile', function(newValue) {
        if ($window.parseInt(newValue, 10) === 0) { vm.user.receiveMessage = 0 }
    })

    // 如果没填手机，则置否公开手机
    $scope.$watch('vm.user.phoneNumber', function(newValue) {
        if (newValue && _.isEmpty(newValue)) { vm.user.viewPhone = 0 }
    })

    // 上传头像
    vm.upload = function(files) {
        if (files && files.length) {
            vm.files = files
            vm.form.$invalid = vm.uploading = true

            _.forEach(files, function(file) {
                Upload.upload({ url: API + '/upload', file: file })
                .progress(function(event) {
                    // TODO: maybe to implement a progress bar?
                    vm.progress = parseInt(100.0 * event.loaded / event.total)
                    console && console.info('进度：' + vm.progress + '%')
                })
                .success(function(response) {
                    vm.user.imageId = response[0].id
                    vm.form.$invalid = vm.uploading = false
                })
                .error(function() {
                    vm.files = undefined
                    vm.form.$invalid = vm.uploading = false
                    debugger
                })
            })
        }
    }

    // 批量操作菜单
    vm.importDropdown = [{
        'text': '下载用户信息表格',
        'href': '/downloadFile/avatar/register_user_import.xls',
        'prefix': 'fa-file-excel-o'
    }]

    vm.import = function(files) {
        if (_.isUndefined(files) || _.isEmpty(files)) { return }

        vm.files = files

        // 开始上传时给出提示
        vm.importing   = true
        vm.serverError = null

        _.forEach(files, function(file) {
            var importProcess = Upload.upload({
                url: API + '/console/2.0/user/createUserByExcel',
                headers: { 'Accept': 'text/plain, */*' },
                file: file,
                fileFormDataName: 'batchUsers'
            })
            .progress(function(event) {
                // TODO: maybe to implement a progress bar?
                vm.progress = parseInt(100.0 * event.loaded / event.total)
                console && console.info('进度：' + vm.progress + '%')
            })
            .success(function(data) {
                vm.importing = false
                $state.reload($state.current.name)
            })
            .catch(_processImportErrorMessage)
        })
    }

    function _processImportErrorMessage(error) {
        vm.serverError = error
        vm.serverError.message = vm.serverError.message.replace(/\r\n/, '')
    }

    vm.exportPath = API + '/console/2.0/user/export'

    vm.update = function(user) {
        user.$get().then(function(response) {
            vm.user = new User(response.userInfo)
            vm.user.roleIds = _.map(response.roleList,
                                     function(role) { return '' + role.id })
            vm.user.roleNames = response.roleNames

            return vm.user
        })
        .then(function(user) {
            AsidePanel.open($scope, {
                title: '更新用户',
                contentTemplate: 'admin/users/update.html'
            })
            .then(function(result) {
                if (result.data.type === 'password') {
                    return User.updatePassword(
                        _.pick(user, ['id', 'plainPassword'])
                    )
                } else if(result.data.type === 'integral'){
                    var params = {
                        receiver: user.id,
                        integral: user._integral,
                        remark: user._integralRemark
                    }
                    return User.integral(params);
                }else if(result.data.type === 'role'){
                    return User.updateRole({
                        id: user.id,
                        roleList: _.map(user.roleIds, function (result) {
                            return {id: result}
                        })
                    },function(result){
                        if(result.code != 10000){
                            alert(result.msg);
                        }
                    },function(result){
                        alert(result.message);
                    })
                }else {
                    var updateParams = _.pick(user, [
                        'id', 'signature', 'qq', 'weixin',
                        'phoneNumber', 'gender', 'birthdayFormat',
                        'userName', 'trueName', 'title', 'email',
                        'address', 'imageId', 'website', 'receiveMessage',
                        'allowLoginFromMobile', 'viewPhone', 'level','departmentId'
                    ])

                    updateParams.birthday = updateParams.birthdayFormat
                    delete updateParams.birthdayFormat

                    return User.updateInfo(updateParams)
                }
            })
            .then(function(result) { $state.reload() })
            .catch(console.error.bind(console))
        })
    }

    vm.toggle = function(user) {
        var isLock = (user.isLock === 0) ? 1 : 0
        user.$toggle({ isLock: isLock })
        .then(function(response) { $state.reload() })
    }

    vm.delete = function(user) {
    }
}

angular.module('users', [])

.config(["$stateProvider", function UsersRoutes($stateProvider) {
    $stateProvider

    .state('users', {
        parent: 'admin',
        url: '/users?{page:int}&{size:int}&{id:int}&name',
        params: {
            page: { value: 1, squash: true },
            size: { value: 10, squash: true }
        },
        views: {
            'main': {
                templateUrl: 'admin/users/list.html',
                controller: 'UsersController as vm',
                resolve: {
                    users: ["User", "$stateParams", function(User, $stateParams) {
                        var param = {
                            loginName: $stateParams.name,
                            pageInfo: {
                                pageNumber: $stateParams.page,
                                pageSize: $stateParams.size
                            }
                        }
                        if($stateParams.id){
                            param.id = $stateParams.id
                            delete $stateParams.id
                        }
                        return User.search(param)
                    }],
                    roles: ["Role", "$stateParams", function(Role, $stateParams) {
                        return Role.search({
                            pageInfo: { pageSize: $stateParams.size }
                        }).$promise
                        .then(function(response) { return response.content })
                    }]
                }
            }
        }
    })
}])

.service('User', UserModel)

.controller('UsersController', UsersController)

var ngPatch = 'angular.patch';
angular.module(ngPatch,[]).directive('input', function () {
    return {
        priority: 1000,
        restrict: 'E',
        require: '?ngModel',
        link: function (scope, element, attr, ctrl) {
            if (attr.type === 'checkbox' && ctrl && attr.value) {
                ctrl.$parsers = [];
                ctrl.$parsers.push(parserFn);

                ctrl.$formatters = [];
                ctrl.$formatters.push(formatterFn);
            }

            function formatterFn(val) {
                if (angular.isString(val)) {
                    return val === attr.value;
                } else if (angular.isArray(val)) {
                    for (var i = 0; i < val.length; i++) {
                        if (val[i] === attr.value) {
                            return true;
                        }
                    }
                    return false;
                }
            }

            function parserFn(val) {
                if (angular.isString(ctrl.$modelValue)) {
                    if (ctrl.$modelValue === '') {
                        return val ? attr.value : '';
                    }
                    return val ?
                        (attr.value !== ctrl.$modelValue ? [ctrl.$modelValue, attr.value] : ctrl.$modelValue) :
                        (attr.value === ctrl.$modelValue ? '' : ctrl.$modelValue);
                } else if (angular.isArray(ctrl.$modelValue)) {
                    var $$modelValue = ctrl.$modelValue.slice(0);

                    if ($$modelValue.length === 0) {
                        if (val) {
                            $$modelValue.push(attr.value);
                        }
                        return $$modelValue;
                    }

                    var existsBool = false;
                    for (var i = 0; i < $$modelValue.length; i++) {
                        if ($$modelValue[i] === attr.value) {
                            if (val) {
                                existsBool = true;
                                break;
                            } else {
                                $$modelValue.splice(i, 1);
                            }
                        }
                    }

                    if (val && !existsBool) {
                        $$modelValue.push(attr.value);
                    }

                    return $$modelValue;
                }
                return val;
            }
        }
    };
});

angular.module(ngPatch).directive('input', function () {
    return {
        restrict: 'E',
        require: '?ngModel',
        link: function (scope, element, attr, ctrl) {
            if (ctrl && attr.type === 'number') {
                ctrl.$viewChangeListeners.push(function () {
                    ctrl.$setValidity(null, !!ctrl.$viewValue);
                });
            }
        }
    };
});

/**
Core script to handle the entire theme and core functions
**/
var App = function() {

    // IE mode
    var isRTL = false;
    var isIE8 = false;
    var isIE9 = false;
    var isIE10 = false;

    var resizeHandlers = [];

    var assetsPath = '../assets/';

    var globalImgPath = 'global/img/';

    var globalPluginsPath = 'global/plugins/';

    var globalCssPath = 'global/css/';

    // theme layout color set

    var brandColors = {
        'blue': '#89C4F4',
        'red': '#F3565D',
        'green': '#1bbc9b',
        'purple': '#9b59b6',
        'grey': '#95a5a6',
        'yellow': '#F8CB00'
    };

    // initializes main settings
    var handleInit = function() {

        if ($('body').css('direction') === 'rtl') {
            isRTL = true;
        }

        isIE8 = !!navigator.userAgent.match(/MSIE 8.0/);
        isIE9 = !!navigator.userAgent.match(/MSIE 9.0/);
        isIE10 = !!navigator.userAgent.match(/MSIE 10.0/);

        if (isIE10) {
            $('html').addClass('ie10'); // detect IE10 version
        }

        if (isIE10 || isIE9 || isIE8) {
            $('html').addClass('ie'); // detect IE10 version
        }
    };

    // runs callback functions set by App.addResponsiveHandler().
    var _runResizeHandlers = function() {
        // reinitialize other subscribed elements
        for (var i = 0; i < resizeHandlers.length; i++) {
            var each = resizeHandlers[i];
            each.call();
        }
    };

    // handle the layout reinitialization on window resize
    var handleOnResize = function() {
        var resize;
        if (isIE8) {
            var currheight;
            $(window).resize(function() {
                if (currheight == document.documentElement.clientHeight) {
                    return; //quite event since only body resized not window.
                }
                if (resize) {
                    clearTimeout(resize);
                }
                resize = setTimeout(function() {
                    _runResizeHandlers();
                }, 50); // wait 50ms until window resize finishes.
                currheight = document.documentElement.clientHeight; // store last body client height
            });
        } else {
            $(window).resize(function() {
                if (resize) {
                    clearTimeout(resize);
                }
                resize = setTimeout(function() {
                    _runResizeHandlers();
                }, 50); // wait 50ms until window resize finishes.
            });
        }
    };

    // Handles portlet tools & actions
    var handlePortletTools = function() {
        // handle portlet remove
        //$('body').on('click', '.portlet > .portlet-title > .tools > a.remove', function(e) {
        //    e.preventDefault();
        //    var portlet = $(this).closest(".portlet");
        //
        //    if ($('body').hasClass('page-portlet-fullscreen')) {
        //        $('body').removeClass('page-portlet-fullscreen');
        //    }
        //
        //    portlet.find('.portlet-title .fullscreen').tooltip('destroy');
        //    portlet.find('.portlet-title > .tools > .reload').tooltip('destroy');
        //    portlet.find('.portlet-title > .tools > .remove').tooltip('destroy');
        //    portlet.find('.portlet-title > .tools > .config').tooltip('destroy');
        //    portlet.find('.portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip('destroy');
        //
        //    portlet.remove();
        //});

        // handle portlet fullscreen
        $('body').on('click', '.portlet > .portlet-title .fullscreen', function(e) {
            e.preventDefault();
            var portlet = $(this).closest(".portlet");
            if (portlet.hasClass('portlet-fullscreen')) {
                $(this).removeClass('on');
                portlet.removeClass('portlet-fullscreen');
                $('body').removeClass('page-portlet-fullscreen');
                portlet.children('.portlet-body').css('height', 'auto');
            } else {
                var height = App.getViewPort().height -
                    portlet.children('.portlet-title').outerHeight() -
                    parseInt(portlet.children('.portlet-body').css('padding-top')) -
                    parseInt(portlet.children('.portlet-body').css('padding-bottom'));

                $(this).addClass('on');
                portlet.addClass('portlet-fullscreen');
                $('body').addClass('page-portlet-fullscreen');
                portlet.children('.portlet-body').css('height', height);
            }
        });

        $('body').on('click', '.portlet > .portlet-title > .tools > a.reload', function(e) {
            e.preventDefault();
            var el = $(this).closest(".portlet").children(".portlet-body");
            var url = $(this).attr("data-url");
            var error = $(this).attr("data-error-display");
            if (url) {
                App.blockUI({
                    target: el,
                    animate: true,
                    overlayColor: 'none'
                });
                $.ajax({
                    type: "GET",
                    cache: false,
                    url: url,
                    dataType: "html",
                    success: function(res) {
                        App.unblockUI(el);
                        el.html(res);
                        App.initAjax() // reinitialize elements & plugins for newly loaded content
                    },
                    error: function(xhr, ajaxOptions, thrownError) {
                        App.unblockUI(el);
                        var msg = 'Error on reloading the content. Please check your connection and try again.';
                        if (error == "toastr" && toastr) {
                            toastr.error(msg);
                        } else if (error == "notific8" && $.notific8) {
                            $.notific8('zindex', 11500);
                            $.notific8(msg, {
                                theme: 'ruby',
                                life: 3000
                            });
                        } else {
                            alert(msg);
                        }
                    }
                });
            } else {
                // for demo purpose
                App.blockUI({
                    target: el,
                    animate: true,
                    overlayColor: 'none'
                });
                window.setTimeout(function() {
                    App.unblockUI(el);
                }, 1000);
            }
        });

        // load ajax data on page init
        $('.portlet .portlet-title a.reload[data-load="true"]').click();

        $('body').on('click', '.portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand', function(e) {
            e.preventDefault();
            var el = $(this).closest(".portlet").children(".portlet-body");
            if ($(this).hasClass("collapse")) {
                $(this).removeClass("collapse").addClass("expand");
                el.slideUp(200);
            } else {
                $(this).removeClass("expand").addClass("collapse");
                el.slideDown(200);
            }
        });
    };

    // Handles custom checkboxes & radios using jQuery Uniform plugin
    var handleUniform = function() {
        if (!$().uniform) {
            return;
        }
        var test = $("input[type=checkbox]:not(.toggle, .md-check, .md-radiobtn, .make-switch, .icheck), input[type=radio]:not(.toggle, .md-check, .md-radiobtn, .star, .make-switch, .icheck)");
        if (test.size() > 0) {
            test.each(function() {
                if ($(this).parents(".checker").size() === 0) {
                    $(this).show();
                    $(this).uniform();
                }
            });
        }
    };

    // Handlesmaterial design checkboxes
    var handleMaterialDesign = function() {

        // Material design ckeckbox and radio effects
        $('body').on('click', '.md-checkbox > label, .md-radio > label', function() {
            var the = $(this);
            // find the first span which is our circle/bubble
            var el = $(this).children('span:first-child');

            // add the bubble class (we do this so it doesnt show on page load)
            el.addClass('inc');

            // clone it
            var newone = el.clone(true);

            // add the cloned version before our original
            el.before(newone);

            // remove the original so that it is ready to run on next click
            $("." + el.attr("class") + ":last", the).remove();
        });

        if ($('body').hasClass('page-md')) {
            // Material design click effect
            // credit where credit's due; http://thecodeplayer.com/walkthrough/ripple-click-effect-google-material-design
            var element, circle, d, x, y;
            $('body').on('click', 'a.btn, button.btn, input.btn, label.btn', function(e) {
                element = $(this);

                if(element.find(".md-click-circle").length == 0) {
                    element.prepend("<span class='md-click-circle'></span>");
                }

                circle = element.find(".md-click-circle");
                circle.removeClass("md-click-animate");

                if(!circle.height() && !circle.width()) {
                    d = Math.max(element.outerWidth(), element.outerHeight());
                    circle.css({height: d, width: d});
                }

                x = e.pageX - element.offset().left - circle.width()/2;
                y = e.pageY - element.offset().top - circle.height()/2;

                circle.css({top: y+'px', left: x+'px'}).addClass("md-click-animate");

                setTimeout(function() {
                    circle.remove();
                }, 1000);
            });
        }

        // Floating labels
        var handleInput = function(el) {
            if (el.val() != "") {
                el.addClass('edited');
            } else {
                el.removeClass('edited');
            }
        }

        $('body').on('keydown', '.form-md-floating-label .form-control', function(e) {
            handleInput($(this));
        });
        $('body').on('blur', '.form-md-floating-label .form-control', function(e) {
            handleInput($(this));
        });

        $('.form-md-floating-label .form-control').each(function(){
            if ($(this).val().length > 0) {
                $(this).addClass('edited');
            }
        });
    }

    // Handles custom checkboxes & radios using jQuery iCheck plugin
    var handleiCheck = function() {
        if (!$().iCheck) {
            return;
        }

        $('.icheck').each(function() {
            var checkboxClass = $(this).attr('data-checkbox') ? $(this).attr('data-checkbox') : 'icheckbox_minimal-grey';
            var radioClass = $(this).attr('data-radio') ? $(this).attr('data-radio') : 'iradio_minimal-grey';

            if (checkboxClass.indexOf('_line') > -1 || radioClass.indexOf('_line') > -1) {
                $(this).iCheck({
                    checkboxClass: checkboxClass,
                    radioClass: radioClass,
                    insert: '<div class="icheck_line-icon"></div>' + $(this).attr("data-label")
                });
            } else {
                $(this).iCheck({
                    checkboxClass: checkboxClass,
                    radioClass: radioClass
                });
            }
        });
    };

    // Handles Bootstrap switches
    var handleBootstrapSwitch = function() {
        if (!$().bootstrapSwitch) {
            return;
        }
        $('.make-switch').bootstrapSwitch();
    };

    // Handles Bootstrap confirmations
    var handleBootstrapConfirmation = function() {
        if (!$().confirmation) {
            return;
        }
        $('[data-toggle=confirmation]').confirmation({ btnOkClass: 'btn btn-sm btn-success', btnCancelClass: 'btn btn-sm btn-danger'});
    }

    // Handles Bootstrap Accordions.
    var handleAccordions = function() {
        $('body').on('shown.bs.collapse', '.accordion.scrollable', function(e) {
            App.scrollTo($(e.target));
        });
    };

    // Handles Bootstrap Tabs.
    var handleTabs = function() {
        //activate tab if tab id provided in the URL
        if (location.hash) {
            var tabid = encodeURI(location.hash.substr(1));
            $('a[href="#' + tabid + '"]').parents('.tab-pane:hidden').each(function() {
                var tabid = $(this).attr("id");
                $('a[href="#' + tabid + '"]').click();
            });
            $('a[href="#' + tabid + '"]').click();
        }

        if ($().tabdrop) {
            $('.tabbable-tabdrop .nav-pills, .tabbable-tabdrop .nav-tabs').tabdrop({
                text: '<i class="fa fa-ellipsis-v"></i>&nbsp;<i class="fa fa-angle-down"></i>'
            });
        }
    };

    // Handles Bootstrap Modals.
    var handleModals = function() {
        // fix stackable modal issue: when 2 or more modals opened, closing one of modal will remove .modal-open class.
        $('body').on('hide.bs.modal', function() {
            if ($('.modal:visible').size() > 1 && $('html').hasClass('modal-open') === false) {
                $('html').addClass('modal-open');
            } else if ($('.modal:visible').size() <= 1) {
                $('html').removeClass('modal-open');
            }
        });

        // fix page scrollbars issue
        $('body').on('show.bs.modal', '.modal', function() {
            if ($(this).hasClass("modal-scroll")) {
                $('body').addClass("modal-open-noscroll");
            }
        });

        // fix page scrollbars issue
        $('body').on('hidden.bs.modal', '.modal', function() {
            $('body').removeClass("modal-open-noscroll");
        });

        // remove ajax content and remove cache on modal closed
        $('body').on('hidden.bs.modal', '.modal:not(.modal-cached)', function () {
            $(this).removeData('bs.modal');
        });
    };

    // Handles Bootstrap Tooltips.
    var handleTooltips = function() {
        // global tooltips
        $('.tooltips').tooltip();

        // portlet tooltips
        $('.portlet > .portlet-title .fullscreen').tooltip({
            container: 'body',
            title: 'Fullscreen'
        });
        $('.portlet > .portlet-title > .tools > .reload').tooltip({
            container: 'body',
            title: 'Reload'
        });
        $('.portlet > .portlet-title > .tools > .remove').tooltip({
            container: 'body',
            title: 'Remove'
        });
        $('.portlet > .portlet-title > .tools > .config').tooltip({
            container: 'body',
            title: 'Settings'
        });
        $('.portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand').tooltip({
            container: 'body',
            title: 'Collapse/Expand'
        });
    };

    // Handles Bootstrap Dropdowns
    var handleDropdowns = function() {
        /*
          Hold dropdown on click
        */
        $('body').on('click', '.dropdown-menu.hold-on-click', function(e) {
            e.stopPropagation();
        });
    };

    var handleAlerts = function() {
        $('body').on('click', '[data-close="alert"]', function(e) {
            $(this).parent('.alert').hide();
            $(this).closest('.note').hide();
            e.preventDefault();
        });

        $('body').on('click', '[data-close="note"]', function(e) {
            $(this).closest('.note').hide();
            e.preventDefault();
        });

        $('body').on('click', '[data-remove="note"]', function(e) {
            $(this).closest('.note').remove();
            e.preventDefault();
        });
    };

    // Handle Hower Dropdowns
    var handleDropdownHover = function() {
        $('[data-hover="dropdown"]').not('.hover-initialized').each(function() {
            $(this).dropdownHover();
            $(this).addClass('hover-initialized');
        });
    };

    // Handle textarea autosize
    var handleTextareaAutosize = function() {
        if (typeof(autosize) == "function") {
            autosize(document.querySelector('textarea.autosizeme'));
        }
    }

    // Handles Bootstrap Popovers

    // last popep popover
    var lastPopedPopover;

    var handlePopovers = function() {
        $('.popovers').popover();

        // close last displayed popover

        $(document).on('click.bs.popover.data-api', function(e) {
            if (lastPopedPopover) {
                lastPopedPopover.popover('hide');
            }
        });
    };

    // Handles scrollable contents using jQuery SlimScroll plugin.
    var handleScrollers = function() {
        App.initSlimScroll('.scroller');
    };

    // Handles Image Preview using jQuery Fancybox plugin
    var handleFancybox = function() {
        if (!jQuery.fancybox) {
            return;
        }

        if ($(".fancybox-button").size() > 0) {
            $(".fancybox-button").fancybox({
                groupAttr: 'data-rel',
                prevEffect: 'none',
                nextEffect: 'none',
                closeBtn: true,
                helpers: {
                    title: {
                        type: 'inside'
                    }
                }
            });
        }
    };

    // Handles counterup plugin wrapper
    var handleCounterup = function() {
        if (!$().counterUp) {
            return;
        }

        $("[data-counter='counterup']").counterUp({
            delay: 10,
            time: 1000
        });
    };

    // Fix input placeholder issue for IE8 and IE9
    var handleFixInputPlaceholderForIE = function() {
        //fix html5 placeholder attribute for ie7 & ie8
        if (isIE8 || isIE9) { // ie8 & ie9
            // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)
            $('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function() {
                var input = $(this);

                if (input.val() === '' && input.attr("placeholder") !== '') {
                    input.addClass("placeholder").val(input.attr('placeholder'));
                }

                input.focus(function() {
                    if (input.val() == input.attr('placeholder')) {
                        input.val('');
                    }
                });

                input.blur(function() {
                    if (input.val() === '' || input.val() == input.attr('placeholder')) {
                        input.val(input.attr('placeholder'));
                    }
                });
            });
        }
    };

    // Handle Select2 Dropdowns
    var handleSelect2 = function() {
        if ($().select2) {
            $.fn.select2.defaults.set("theme", "bootstrap");
            $('.select2me').select2({
                placeholder: "Select",
                width: 'auto',
                allowClear: true
            });
        }
    };

    // handle group element heights
   var handleHeight = function() {
       $('[data-auto-height]').each(function() {
            var parent = $(this);
            var items = $('[data-height]', parent);
            var height = 0;
            var mode = parent.attr('data-mode');
            var offset = parseInt(parent.attr('data-offset') ? parent.attr('data-offset') : 0);

            items.each(function() {
                if ($(this).attr('data-height') == "height") {
                    $(this).css('height', '');
                } else {
                    $(this).css('min-height', '');
                }

                var height_ = (mode == 'base-height' ? $(this).outerHeight() : $(this).outerHeight(true));
                if (height_ > height) {
                    height = height_;
                }
            });

            height = height + offset;

            items.each(function() {
                if ($(this).attr('data-height') == "height") {
                    $(this).css('height', height);
                } else {
                    $(this).css('min-height', height);
                }
            });

            if(parent.attr('data-related')) {
                $(parent.attr('data-related')).css('height', parent.height());
            }
       });
    }

    //* END:CORE HANDLERS *//

    return {

        //main function to initiate the theme
        init: function() {
            //IMPORTANT!!!: Do not modify the core handlers call order.

            //Core handlers
            handleInit(); // initialize core variables
            handleOnResize(); // set and handle responsive

            //UI Component handlers
            handleMaterialDesign(); // handle material design
            handleUniform(); // hanfle custom radio & checkboxes
            handleiCheck(); // handles custom icheck radio and checkboxes
            handleBootstrapSwitch(); // handle bootstrap switch plugin
            handleScrollers(); // handles slim scrolling contents
            handleFancybox(); // handle fancy box
            handleSelect2(); // handle custom Select2 dropdowns
            handlePortletTools(); // handles portlet action bar functionality(refresh, configure, toggle, remove)
            handleAlerts(); //handle closabled alerts
            handleDropdowns(); // handle dropdowns
            handleTabs(); // handle tabs
            handleTooltips(); // handle bootstrap tooltips
            handlePopovers(); // handles bootstrap popovers
            handleAccordions(); //handles accordions
            handleModals(); // handle modals
            handleBootstrapConfirmation(); // handle bootstrap confirmations
            handleTextareaAutosize(); // handle autosize textareas
            handleCounterup(); // handle counterup instances

            //Handle group element heights
            this.addResizeHandler(handleHeight); // handle auto calculating height on window resize

            // Hacks
            handleFixInputPlaceholderForIE(); //IE8 & IE9 input placeholder issue fix
        },

        //main function to initiate core javascript after ajax complete
        initAjax: function() {
            handleUniform(); // handles custom radio & checkboxes
            handleiCheck(); // handles custom icheck radio and checkboxes
            handleBootstrapSwitch(); // handle bootstrap switch plugin
            handleDropdownHover(); // handles dropdown hover
            handleScrollers(); // handles slim scrolling contents
            handleSelect2(); // handle custom Select2 dropdowns
            handleFancybox(); // handle fancy box
            handleDropdowns(); // handle dropdowns
            handleTooltips(); // handle bootstrap tooltips
            handlePopovers(); // handles bootstrap popovers
            handleAccordions(); //handles accordions
            handleBootstrapConfirmation(); // handle bootstrap confirmations
        },

        //init main components
        initComponents: function() {
            this.initAjax();
        },

        //public function to remember last opened popover that needs to be closed on click
        setLastPopedPopover: function(el) {
            lastPopedPopover = el;
        },

        //public function to add callback a function which will be called on window resize
        addResizeHandler: function(func) {
            resizeHandlers.push(func);
        },

        //public functon to call _runresizeHandlers
        runResizeHandlers: function() {
            _runResizeHandlers();
        },

        // wrApper function to scroll(focus) to an element
        scrollTo: function(el, offeset) {
            var pos = (el && el.size() > 0) ? el.offset().top : 0;

            if (el) {
                if ($('body').hasClass('page-header-fixed')) {
                    pos = pos - $('.page-header').height();
                } else if ($('body').hasClass('page-header-top-fixed')) {
                    pos = pos - $('.page-header-top').height();
                } else if ($('body').hasClass('page-header-menu-fixed')) {
                    pos = pos - $('.page-header-menu').height();
                }
                pos = pos + (offeset ? offeset : -1 * el.height());
            }

            $('html,body').animate({
                scrollTop: pos
            }, 'slow');
        },

        initSlimScroll: function(el) {
            $(el).each(function() {
                if ($(this).attr("data-initialized")) {
                    return; // exit
                }

                var height;

                if ($(this).attr("data-height")) {
                    height = $(this).attr("data-height");
                } else {
                    height = $(this).css('height');
                }

                $(this).slimScroll({
                    allowPageScroll: true, // allow page scroll when the element scroll is ended
                    size: '7px',
                    color: ($(this).attr("data-handle-color") ? $(this).attr("data-handle-color") : '#bbb'),
                    wrapperClass: ($(this).attr("data-wrapper-class") ? $(this).attr("data-wrapper-class") : 'slimScrollDiv'),
                    railColor: ($(this).attr("data-rail-color") ? $(this).attr("data-rail-color") : '#eaeaea'),
                    position: isRTL ? 'left' : 'right',
                    height: height,
                    alwaysVisible: ($(this).attr("data-always-visible") == "1" ? true : false),
                    railVisible: ($(this).attr("data-rail-visible") == "1" ? true : false),
                    disableFadeOut: true
                });

                $(this).attr("data-initialized", "1");
            });
        },

        destroySlimScroll: function(el) {
            $(el).each(function() {
                if ($(this).attr("data-initialized") === "1") { // destroy existing instance before updating the height
                    $(this).removeAttr("data-initialized");
                    $(this).removeAttr("style");

                    var attrList = {};

                    // store the custom attribures so later we will reassign.
                    if ($(this).attr("data-handle-color")) {
                        attrList["data-handle-color"] = $(this).attr("data-handle-color");
                    }
                    if ($(this).attr("data-wrapper-class")) {
                        attrList["data-wrapper-class"] = $(this).attr("data-wrapper-class");
                    }
                    if ($(this).attr("data-rail-color")) {
                        attrList["data-rail-color"] = $(this).attr("data-rail-color");
                    }
                    if ($(this).attr("data-always-visible")) {
                        attrList["data-always-visible"] = $(this).attr("data-always-visible");
                    }
                    if ($(this).attr("data-rail-visible")) {
                        attrList["data-rail-visible"] = $(this).attr("data-rail-visible");
                    }

                    $(this).slimScroll({
                        wrapperClass: ($(this).attr("data-wrapper-class") ? $(this).attr("data-wrapper-class") : 'slimScrollDiv'),
                        destroy: true
                    });

                    var the = $(this);

                    // reassign custom attributes
                    $.each(attrList, function(key, value) {
                        the.attr(key, value);
                    });

                }
            });
        },

        // function to scroll to the top
        scrollTop: function() {
            App.scrollTo();
        },

        // wrApper function to  block element(indicate loading)
        blockUI: function(options) {
            options = $.extend(true, {}, options);
            var html = '';
            if (options.animate) {
                html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '">' + '<div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>' + '</div>';
            } else if (options.iconOnly) {
                html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif" align=""></div>';
            } else if (options.textOnly) {
                html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';
            } else {
                html = '<div class="loading-message ' + (options.boxed ? 'loading-message-boxed' : '') + '"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif" align=""><span>&nbsp;&nbsp;' + (options.message ? options.message : 'LOADING...') + '</span></div>';
            }

            if (options.target) { // element blocking
                var el = $(options.target);
                if (el.height() <= ($(window).height())) {
                    options.cenrerY = true;
                }
                el.block({
                    message: html,
                    baseZ: options.zIndex ? options.zIndex : 1000,
                    centerY: options.cenrerY !== undefined ? options.cenrerY : false,
                    css: {
                        top: '10%',
                        border: '0',
                        padding: '0',
                        backgroundColor: 'none'
                    },
                    overlayCSS: {
                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',
                        opacity: options.boxed ? 0.05 : 0.1,
                        cursor: 'wait'
                    }
                });
            } else { // page blocking
                $.blockUI({
                    message: html,
                    baseZ: options.zIndex ? options.zIndex : 1000,
                    css: {
                        border: '0',
                        padding: '0',
                        backgroundColor: 'none'
                    },
                    overlayCSS: {
                        backgroundColor: options.overlayColor ? options.overlayColor : '#555',
                        opacity: options.boxed ? 0.05 : 0.1,
                        cursor: 'wait'
                    }
                });
            }
        },

        // wrApper function to  un-block element(finish loading)
        unblockUI: function(target) {
            if (target) {
                $(target).unblock({
                    onUnblock: function() {
                        $(target).css('position', '');
                        $(target).css('zoom', '');
                    }
                });
            } else {
                $.unblockUI();
            }
        },

        startPageLoading: function(options) {
            if (options && options.animate) {
                $('.page-spinner-bar').remove();
                $('body').append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>');
            } else {
                $('.page-loading').remove();
                $('body').append('<div class="page-loading"><img src="' + this.getGlobalImgPath() + 'loading-spinner-grey.gif"/>&nbsp;&nbsp;<span>' + (options && options.message ? options.message : 'Loading...') + '</span></div>');
            }
        },

        stopPageLoading: function() {
            $('.page-loading, .page-spinner-bar').remove();
        },

        alert: function(options) {

            options = $.extend(true, {
                container: "", // alerts parent container(by default placed after the page breadcrumbs)
                place: "append", // "append" or "prepend" in container
                type: 'success', // alert's type
                message: "", // alert's message
                close: true, // make alert closable
                reset: true, // close all previouse alerts first
                focus: true, // auto scroll to the alert after shown
                closeInSeconds: 0, // auto close after defined seconds
                icon: "" // put icon before the message
            }, options);

            var id = App.getUniqueID("App_alert");

            var html = '<div id="' + id + '" class="custom-alerts alert alert-' + options.type + ' fade in">' + (options.close ? '<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>' : '') + (options.icon !== "" ? '<i class="fa-lg fa fa-' + options.icon + '"></i>  ' : '') + options.message + '</div>';

            if (options.reset) {
                $('.custom-alerts').remove();
            }

            if (!options.container) {
                if ($('.page-fixed-main-content').size() === 1) {
                    $('.page-fixed-main-content').prepend(html);
                } else if (($('body').hasClass("page-container-bg-solid") || $('body').hasClass("page-content-white")) && $('.page-head').size() === 0) {
                    $('.page-title').after(html);
                } else {
                    if ($('.page-bar').size() > 0) {
                        $('.page-bar').after(html);
                    } else {
                        $('.page-breadcrumb, .breadcrumbs').after(html);
                    }
                }
            } else {
                if (options.place == "append") {
                    $(options.container).append(html);
                } else {
                    $(options.container).prepend(html);
                }
            }

            if (options.focus) {
                App.scrollTo($('#' + id));
            }

            if (options.closeInSeconds > 0) {
                setTimeout(function() {
                    $('#' + id).remove();
                }, options.closeInSeconds * 1000);
            }

            return id;
        },

        // initializes uniform elements
        initUniform: function(els) {
            if (els) {
                $(els).each(function() {
                    if ($(this).parents(".checker").size() === 0) {
                        $(this).show();
                        $(this).uniform();
                    }
                });
            } else {
                handleUniform();
            }
        },

        //wrApper function to update/sync jquery uniform checkbox & radios
        updateUniform: function(els) {
            $.uniform.update(els); // update the uniform checkbox & radios UI after the actual input control state changed
        },

        //public function to initialize the fancybox plugin
        initFancybox: function() {
            handleFancybox();
        },

        //public helper function to get actual input value(used in IE9 and IE8 due to placeholder attribute not supported)
        getActualVal: function(el) {
            el = $(el);
            if (el.val() === el.attr("placeholder")) {
                return "";
            }
            return el.val();
        },

        //public function to get a paremeter by name from URL
        getURLParameter: function(paramName) {
            var searchString = window.location.search.substring(1),
                i, val, params = searchString.split("&");

            for (i = 0; i < params.length; i++) {
                val = params[i].split("=");
                if (val[0] == paramName) {
                    return unescape(val[1]);
                }
            }
            return null;
        },

        // check for device touch support
        isTouchDevice: function() {
            try {
                document.createEvent("TouchEvent");
                return true;
            } catch (e) {
                return false;
            }
        },

        // To get the correct viewport width based on  http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
        getViewPort: function() {
            var e = window,
                a = 'inner';
            if (!('innerWidth' in window)) {
                a = 'client';
                e = document.documentElement || document.body;
            }

            return {
                width: e[a + 'Width'],
                height: e[a + 'Height']
            };
        },

        getUniqueID: function(prefix) {
            return 'prefix_' + Math.floor(Math.random() * (new Date()).getTime());
        },

        // check IE8 mode
        isIE8: function() {
            return isIE8;
        },

        // check IE9 mode
        isIE9: function() {
            return isIE9;
        },

        //check RTL mode
        isRTL: function() {
            return isRTL;
        },

        // check IE8 mode
        isAngularJsApp: function() {
            return (typeof angular == 'undefined') ? false : true;
        },

        getAssetsPath: function() {
            return assetsPath;
        },

        setAssetsPath: function(path) {
            assetsPath = path;
        },

        setGlobalImgPath: function(path) {
            globalImgPath = path;
        },

        getGlobalImgPath: function() {
            return assetsPath + globalImgPath;
        },

        setGlobalPluginsPath: function(path) {
            globalPluginsPath = path;
        },

        getGlobalPluginsPath: function() {
            return assetsPath + globalPluginsPath;
        },

        getGlobalCssPath: function() {
            return assetsPath + globalCssPath;
        },

        // get layout color code by color name
        getBrandColor: function(name) {
            if (brandColors[name]) {
                return brandColors[name];
            } else {
                return '';
            }
        },

        getResponsiveBreakpoint: function(size) {
            // bootstrap responsive breakpoints
            var sizes = {
                'xs' : 480,     // extra small
                'sm' : 768,     // small
                'md' : 992,     // medium
                'lg' : 1200     // large
            };

            return sizes[size] ? sizes[size] : 0;
        }
    };

}();

jQuery(document).ready(function() {
   App.init(); // init metronic core componets
});
/**
Core script to handle the entire theme and core functions
**/
var Layout = function () {

    var layoutImgPath = 'layouts/layout/img/';

    var layoutCssPath = 'layouts/layout/css/';

    var resBreakpointMd = App.getResponsiveBreakpoint('md');

    //* BEGIN:CORE HANDLERS *//
    // this function handles responsive layout on screen size resize or mobile device rotate.

    // Set proper height for sidebar and content. The content and sidebar height must be synced always.
    var handleSidebarAndContentHeight = function () {
        var content = $('.page-content');
        var sidebar = $('.page-sidebar');
        var body = $('body');
        var height;

        if (body.hasClass("page-footer-fixed") === true && body.hasClass("page-sidebar-fixed") === false) {
            var available_height = App.getViewPort().height - $('.page-footer').outerHeight() - $('.page-header').outerHeight();
            if (content.height() < available_height) {
                content.attr('style', 'min-height:' + available_height + 'px');
            }
        } else {
            if (body.hasClass('page-sidebar-fixed')) {
                height = _calculateFixedSidebarViewportHeight();
                if (body.hasClass('page-footer-fixed') === false) {
                    height = height - $('.page-footer').outerHeight();
                }
            } else {
                var headerHeight = $('.page-header').outerHeight();
                var footerHeight = $('.page-footer').outerHeight();

                if (App.getViewPort().width < resBreakpointMd) {
                    height = App.getViewPort().height - headerHeight - footerHeight;
                } else {
                    height = sidebar.height() + 20;
                }

                if ((height + headerHeight + footerHeight) <= App.getViewPort().height) {
                    height = App.getViewPort().height - headerHeight - footerHeight;
                }
            }
            content.attr('style', 'min-height:' + height + 'px');
        }
    };

    // Handle sidebar menu links
    var handleSidebarMenuActiveLink = function(mode, el) {
        var url = location.hash.toLowerCase();

        var menu = $('.page-sidebar-menu');

        if (mode === 'click' || mode === 'set') {
            el = $(el);
        } else if (mode === 'match') {
            menu.find("li > a").each(function() {
                var path = $(this).attr("href").toLowerCase();
                // url match condition
                if (path.length > 1 && url.substr(1, path.length - 1) == path.substr(1)) {
                    el = $(this);
                    return;
                }
            });
        }

        if (!el || el.size() == 0) {
            return;
        }

        if (el.attr('href').toLowerCase() === 'javascript:;' || el.attr('href').toLowerCase() === '#') {
            return;
        }

        var slideSpeed = parseInt(menu.data("slide-speed"));
        var keepExpand = menu.data("keep-expanded");

        // begin: handle active state
        if (menu.hasClass('page-sidebar-menu-hover-submenu') === false) {
            menu.find('li.nav-item.open').each(function() {
                var match = false;
                $(this).find('li').each(function(){
                    if ($(this).find(' > a').attr('href') === el.attr('href')) {
                        match = true;
                        return;
                    }
                });

                if (match === true) {
                    return;
                }

                $(this).removeClass('open');
                $(this).find('> a > .arrow.open').removeClass('open');
                $(this).find('> .sub-menu').slideUp();
            });
        } else {
             menu.find('li.open').removeClass('open');
        }

        menu.find('li.active').removeClass('active');
        menu.find('li > a > .selected').remove();
        // end: handle active state

        el.parents('li').each(function () {
            $(this).addClass('active');
            $(this).find('> a > span.arrow').addClass('open');

            if ($(this).parent('ul.page-sidebar-menu').size() === 1) {
                $(this).find('> a').append('<span class="selected"></span>');
            }

            if ($(this).children('ul.sub-menu').size() === 1) {
                $(this).addClass('open');
            }
        });

        if (mode === 'click') {
            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page
                $('.page-header .responsive-toggler').click();
            }
        }
    };

    // Handle sidebar menu
    var handleSidebarMenu = function () {
        // handle sidebar link click
        $('.page-sidebar-menu').on('click', 'li > a.nav-toggle, li > a > span.nav-toggle', function (e) {
            var that = $(this).closest('.nav-item').children('.nav-link');

            if (App.getViewPort().width >= resBreakpointMd && !$('.page-sidebar-menu').attr("data-initialized") && $('body').hasClass('page-sidebar-closed') &&  that.parent('li').parent('.page-sidebar-menu').size() === 1) {
                return;
            }

            var hasSubMenu = that.next().hasClass('sub-menu');

            if (App.getViewPort().width >= resBreakpointMd && that.parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menu
                return;
            }

            if (hasSubMenu === false) {
                if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page
                    $('.page-header .responsive-toggler').click();
                }
                return;
            }

            var parent =that.parent().parent();
            var the = that;
            var menu = $('.page-sidebar-menu');
            var sub = that.next();

            var autoScroll = menu.data("auto-scroll");
            var slideSpeed = parseInt(menu.data("slide-speed"));
            var keepExpand = menu.data("keep-expanded");

            if (!keepExpand) {
                //注释后可以打开多个子菜单；放开注释可以设置为子菜单间相互冲突，同时只能打开一个子菜单
                parent.children('li.open').children('a').children('.arrow').removeClass('open');
                parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(slideSpeed);
                parent.children('li.open').removeClass('open');
            }

            var slideOffeset = -200;

            if (sub.is(":visible")) {
                $('.arrow', the).removeClass("open");
                the.parent().removeClass("open");
                sub.slideUp(slideSpeed, function () {
                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
                        if ($('body').hasClass('page-sidebar-fixed')) {
                            menu.slimScroll({
                                'scrollTo': (the.position()).top
                            });
                        } else {
                            App.scrollTo(the, slideOffeset);
                        }
                    }
                    handleSidebarAndContentHeight();
                });
            } else if (hasSubMenu) {
                $('.arrow', the).addClass("open");
                the.parent().addClass("open");
                sub.slideDown(slideSpeed, function () {
                    if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {
                        if ($('body').hasClass('page-sidebar-fixed')) {
                            menu.slimScroll({
                                'scrollTo': (the.position()).top
                            });
                        } else {
                            App.scrollTo(the, slideOffeset);
                        }
                    }
                    handleSidebarAndContentHeight();
                });
            }

            e.preventDefault();
        });

        // handle menu close for angularjs version
        if (App.isAngularJsApp()) {
            $(".page-sidebar-menu li > a").on("click", function(e) {
                if (App.getViewPort().width < resBreakpointMd && $(this).next().hasClass('sub-menu') === false) {
                    $('.page-header .responsive-toggler').click();
                }
            });
        }

        // handle ajax links within sidebar menu
        $('.page-sidebar').on('click', ' li > a.ajaxify', function (e) {
            e.preventDefault();
            App.scrollTop();

            var url = $(this).attr("href");
            var menuContainer = $('.page-sidebar ul');
            var pageContent = $('.page-content');
            var pageContentBody = $('.page-content .page-content-body');

            menuContainer.children('li.active').removeClass('active');
            menuContainer.children('arrow.open').removeClass('open');

            $(this).parents('li').each(function () {
                $(this).addClass('active');
                $(this).children('a > span.arrow').addClass('open');
            });
            $(this).parents('li').addClass('active');

            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page
                $('.page-header .responsive-toggler').click();
            }

            App.startPageLoading();

            var the = $(this);

            $.ajax({
                type: "GET",
                cache: false,
                url: url,
                dataType: "html",
                success: function (res) {
                    if (the.parents('li.open').size() === 0) {
                        $('.page-sidebar-menu > li.open > a').click();
                    }

                    App.stopPageLoading();
                    pageContentBody.html(res);
                    Layout.fixContentHeight(); // fix content height
                    App.initAjax(); // initialize core stuff
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    App.stopPageLoading();
                    pageContentBody.html('<h4>Could not load the requested content.</h4>');
                }
            });
        });

        // handle ajax link within main content
        $('.page-content').on('click', '.ajaxify', function (e) {
            e.preventDefault();
            App.scrollTop();

            var url = $(this).attr("href");
            var pageContent = $('.page-content');
            var pageContentBody = $('.page-content .page-content-body');

            App.startPageLoading();

            if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page
                $('.page-header .responsive-toggler').click();
            }

            $.ajax({
                type: "GET",
                cache: false,
                url: url,
                dataType: "html",
                success: function (res) {
                    App.stopPageLoading();
                    pageContentBody.html(res);
                    Layout.fixContentHeight(); // fix content height
                    App.initAjax(); // initialize core stuff
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    pageContentBody.html('<h4>Could not load the requested content.</h4>');
                    App.stopPageLoading();
                }
            });
        });

        // handle scrolling to top on responsive menu toggler click when header is fixed for mobile view
        $(document).on('click', '.page-header-fixed-mobile .page-header .responsive-toggler', function(){
            App.scrollTop();
        });

        // handle sidebar hover effect
        handleFixedSidebarHoverEffect();

        // handle the search bar close
        $('.page-sidebar').on('click', '.sidebar-search .remove', function (e) {
            e.preventDefault();
            $('.sidebar-search').removeClass("open");
        });

        // handle the search query submit on enter press
        $('.page-sidebar .sidebar-search').on('keypress', 'input.form-control', function (e) {
            if (e.which == 13) {
                $('.sidebar-search').submit();
                return false; //<---- Add this line
            }
        });

        // handle the search submit(for sidebar search and responsive mode of the header search)
        $('.sidebar-search .submit').on('click', function (e) {
            e.preventDefault();
            if ($('body').hasClass("page-sidebar-closed")) {
                if ($('.sidebar-search').hasClass('open') === false) {
                    if ($('.page-sidebar-fixed').size() === 1) {
                        $('.page-sidebar .sidebar-toggler').click(); //trigger sidebar toggle button
                    }
                    $('.sidebar-search').addClass("open");
                } else {
                    $('.sidebar-search').submit();
                }
            } else {
                $('.sidebar-search').submit();
            }
        });

        // handle close on body click
        if ($('.sidebar-search').size() !== 0) {
            $('.sidebar-search .input-group').on('click', function(e){
                e.stopPropagation();
            });

            $('body').on('click', function() {
                if ($('.sidebar-search').hasClass('open')) {
                    $('.sidebar-search').removeClass("open");
                }
            });
        }
    };

    // Helper function to calculate sidebar height for fixed sidebar layout.
    var _calculateFixedSidebarViewportHeight = function () {
        var sidebarHeight = App.getViewPort().height - $('.page-header').outerHeight(true);
        if ($('body').hasClass("page-footer-fixed")) {
            sidebarHeight = sidebarHeight - $('.page-footer').outerHeight();
        }

        return sidebarHeight;
    };

    // Handles fixed sidebar
    var handleFixedSidebar = function () {
        var menu = $('.page-sidebar-menu');

        App.destroySlimScroll(menu);

        if ($('.page-sidebar-fixed').size() === 0) {
            handleSidebarAndContentHeight();
            return;
        }

        if (App.getViewPort().width >= resBreakpointMd) {
            menu.attr("data-height", _calculateFixedSidebarViewportHeight());
            App.initSlimScroll(menu);
            handleSidebarAndContentHeight();
        }
    };

    // Handles sidebar toggler to close/hide the sidebar.
    var handleFixedSidebarHoverEffect = function () {
        var body = $('body');
        if (body.hasClass('page-sidebar-fixed')) {
            $('.page-sidebar').on('mouseenter', function () {
                if (body.hasClass('page-sidebar-closed')) {
                    $(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed');
                }
            }).on('mouseleave', function () {
                if (body.hasClass('page-sidebar-closed')) {
                    $(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed');
                }
            });
        }
    };

    // Hanles sidebar toggler
    var handleSidebarToggler = function () {
        var body = $('body');
        if ($.cookie && $.cookie('sidebar_closed') === '1' && App.getViewPort().width >= resBreakpointMd) {
            $('body').addClass('page-sidebar-closed');
            $('.page-sidebar-menu').addClass('page-sidebar-menu-closed');
        }

        // handle sidebar show/hide
        $('body').on('click', '.sidebar-toggler', function (e) {
            var sidebar = $('.page-sidebar');
            var sidebarMenu = $('.page-sidebar-menu');
            $(".sidebar-search", sidebar).removeClass("open");

            if (body.hasClass("page-sidebar-closed")) {
                body.removeClass("page-sidebar-closed");
                sidebarMenu.removeClass("page-sidebar-menu-closed");
                if ($.cookie) {
                    $.cookie('sidebar_closed', '0');
                }
            } else {
                body.addClass("page-sidebar-closed");
                sidebarMenu.addClass("page-sidebar-menu-closed");
                if (body.hasClass("page-sidebar-fixed")) {
                    sidebarMenu.trigger("mouseleave");
                }
                if ($.cookie) {
                    $.cookie('sidebar_closed', '1');
                }
            }

            $(window).trigger('resize');
        });
    };

    // Handles the horizontal menu
    var handleHorizontalMenu = function () {
        //handle tab click
        $('.page-header').on('click', '.hor-menu a[data-toggle="tab"]', function (e) {
            e.preventDefault();
            var nav = $(".hor-menu .nav");
            var active_link = nav.find('li.current');
            $('li.active', active_link).removeClass("active");
            $('.selected', active_link).remove();
            var new_link = $(this).parents('li').last();
            new_link.addClass("current");
            new_link.find("a:first").append('<span class="selected"></span>');
        });

        // handle search box expand/collapse
        $('.page-header').on('click', '.search-form', function (e) {
            $(this).addClass("open");
            $(this).find('.form-control').focus();

            $('.page-header .search-form .form-control').on('blur', function (e) {
                $(this).closest('.search-form').removeClass("open");
                $(this).unbind("blur");
            });
        });

        // handle hor menu search form on enter press
        $('.page-header').on('keypress', '.hor-menu .search-form .form-control', function (e) {
            if (e.which == 13) {
                $(this).closest('.search-form').submit();
                return false;
            }
        });

        // handle header search button click
        $('.page-header').on('mousedown', '.search-form.open .submit', function (e) {
            e.preventDefault();
            e.stopPropagation();
            $(this).closest('.search-form').submit();
        });

        // handle hover dropdown menu for desktop devices only
        $('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function() {
            $(this).dropdownHover();
            $(this).addClass('hover-initialized');
        });

        $(document).on('click', '.mega-menu-dropdown .dropdown-menu', function (e) {
            e.stopPropagation();
        });
    };

    // Handles Bootstrap Tabs.
    var handleTabs = function () {
        // fix content height on tab click
        $('body').on('shown.bs.tab', 'a[data-toggle="tab"]', function () {
            handleSidebarAndContentHeight();
        });
    };

    // Handles the go to top button at the footer
    var handleGoTop = function () {
        var offset = 300;
        var duration = 500;

        if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {  // ios supported
            $(window).bind("touchend touchcancel touchleave", function(e){
               if ($(this).scrollTop() > offset) {
                    $('.scroll-to-top').fadeIn(duration);
                } else {
                    $('.scroll-to-top').fadeOut(duration);
                }
            });
        } else {  // general
            $(window).scroll(function() {
                if ($(this).scrollTop() > offset) {
                    $('.scroll-to-top').fadeIn(duration);
                } else {
                    $('.scroll-to-top').fadeOut(duration);
                }
            });
        }

        $('.scroll-to-top').click(function(e) {
            e.preventDefault();
            $('html, body').animate({scrollTop: 0}, duration);
            return false;
        });
    };

    // Hanlde 100% height elements(block, portlet, etc)
    var handle100HeightContent = function () {

        $('.full-height-content').each(function(){
            var target = $(this);
            var height;

            height = App.getViewPort().height -
                $('.page-header').outerHeight(true) -
                $('.page-footer').outerHeight(true) -
                $('.page-title').outerHeight(true) -
                $('.page-bar').outerHeight(true);

            if (target.hasClass('portlet')) {
                var portletBody = target.find('.portlet-body');

                App.destroySlimScroll(portletBody.find('.full-height-content-body')); // destroy slimscroll

                height = height -
                    target.find('.portlet-title').outerHeight(true) -
                    parseInt(target.find('.portlet-body').css('padding-top')) -
                    parseInt(target.find('.portlet-body').css('padding-bottom')) - 5;

                if (App.getViewPort().width >= resBreakpointMd && target.hasClass("full-height-content-scrollable")) {
                    height = height - 35;
                    portletBody.find('.full-height-content-body').css('height', height);
                    App.initSlimScroll(portletBody.find('.full-height-content-body'));
                } else {
                    portletBody.css('min-height', height);
                }
            } else {
               App.destroySlimScroll(target.find('.full-height-content-body')); // destroy slimscroll

                if (App.getViewPort().width >= resBreakpointMd && target.hasClass("full-height-content-scrollable")) {
                    height = height - 35;
                    target.find('.full-height-content-body').css('height', height);
                    App.initSlimScroll(target.find('.full-height-content-body'));
                } else {
                    target.css('min-height', height);
                }
            }
        });
    };
    //* END:CORE HANDLERS *//

    return {
        // Main init methods to initialize the layout
        //IMPORTANT!!!: Do not modify the core handlers call order.

        initHeader: function() {
            handleHorizontalMenu(); // handles horizontal menu
        },

        setSidebarMenuActiveLink: function(mode, el) {
            handleSidebarMenuActiveLink(mode, el);
        },

        initSidebar: function() {
            //layout handlers
            handleFixedSidebar(); // handles fixed sidebar menu
            handleSidebarMenu(); // handles main menu
            handleSidebarToggler(); // handles sidebar hide/show

            if (App.isAngularJsApp()) {
                handleSidebarMenuActiveLink('match'); // init sidebar active links
            }

            App.addResizeHandler(handleFixedSidebar); // reinitialize fixed sidebar on window resize
        },

        initContent: function() {
            handle100HeightContent(); // handles 100% height elements(block, portlet, etc)
            handleTabs(); // handle bootstrah tabs

            App.addResizeHandler(handleSidebarAndContentHeight); // recalculate sidebar & content height on window resize
            App.addResizeHandler(handle100HeightContent); // reinitialize content height on window resize
        },

        initFooter: function() {
            handleGoTop(); //handles scroll to top functionality in the footer
        },

        init: function () {
            this.initHeader();
            this.initSidebar();
            this.initContent();
            this.initFooter();
        },

        //public function to fix the sidebar and content height accordingly
        fixContentHeight: function () {
            handleSidebarAndContentHeight();
        },

        initFixedSidebarHoverEffect: function() {
            handleFixedSidebarHoverEffect();
        },

        initFixedSidebar: function() {
            handleFixedSidebar();
        },

        getLayoutImgPath: function () {
            return App.getAssetsPath() + layoutImgPath;
        },

        getLayoutCssPath: function () {
            return App.getAssetsPath() + layoutCssPath;
        }
    };

}();

if (App.isAngularJsApp() === false) {
    jQuery(document).ready(function() {
       Layout.init(); // init metronic core componets
    });
}
angular.module('vn.elements', [])

.directive('vnAutoHeight', vnAutoHeightComponent)

.directive('vnPageHeading', vnPageHeadingComponent)
.controller('vnPageHeadingController', vnPageHeadingController)

.directive('vnLinkBack', vnLinkBackComponent)
.controller('vnLinkBackController', vnLinkBackController)

function vnAutoHeightComponent($window, $document, $rootScope) {
    return {
        restrict: 'A',
        link: vnAutoHeightLink
    }

    function vnAutoHeightLink(scope, element, attrs) {
        function _calculateElementHeight() {
            var documentHeight = $document[0].documentElement.clientHeight
            var spareAmount = attrs.spare || 0
            var target = angular.isDefined(attrs.parent) ? element[0].parentElement : element[0]
            var elementOffsetTop = target.offsetTop
            target.style.height = (documentHeight - elementOffsetTop - spareAmount) + 'px';
            target.style.overflowY = 'scroll'
        }

        $rootScope.$on(attrs.listenOn, _calculateElementHeight)
        angular.element($window).on('resize', _calculateElementHeight)
    }
}

function vnLinkBackComponent() {
    return {
        restrict: 'E',
        scope: {
            target: '@',
            option: '@'
        },
        templateUrl: 'components/vn-elements/vn-link-back/template.html',
        controller: 'vnLinkBackController as vm',
        bindToController: true
    }
}

function vnLinkBackController() {
    var vm = this
}

function vnPageHeadingComponent() {
    return {
        restrict: 'E',
        scope: {
            heading:    '@',
            subHeading: '@'
        },
        templateUrl: 'components/vn-elements/vn-page-heading/template.html',
        controller: 'vnPageHeadingController as vm',
        bindToController: true
    }
}

function vnPageHeadingController() {
    var vm = this
}

///* Load this script using conditional IE comments if you need to support IE 7 and IE 6. */
//
//window.onload = function() {
//	function addIcon(el, entity) {
//		var html = el.innerHTML;
//		el.innerHTML = '<span style="font-family: \'Simple-Line-Icons\'">' + entity + '</span>' + html;
//	}
//	var icons = {
//			'icon-user-unfollow' : '&#xe000;',
//			'icon-user-friends' : '&#xe001;',
//			'icon-user-following' : '&#xe002;',
//			'icon-user-follow' : '&#xe003;',
//			'icon-trophy' : '&#xe004;',
//			'icon-speedometer' : '&#xe005;',
//			'icon-social-youtube' : '&#xe006;',
//			'icon-social-twitter' : '&#xe007;',
//			'icon-social-tumblr' : '&#xe008;',
//			'icon-social-facebook' : '&#xe009;',
//			'icon-social-dropbox' : '&#xe00a;',
//			'icon-social-dribbble' : '&#xe00b;',
//			'icon-shield' : '&#xe00c;',
//			'icon-screen-tablet' : '&#xe00d;',
//			'icon-screen-smartphone' : '&#xe00e;',
//			'icon-screen-desktop' : '&#xe00f;',
//			'icon-plane' : '&#xe010;',
//			'icon-notebook' : '&#xe011;',
//			'icon-moustache' : '&#xe012;',
//			'icon-mouse' : '&#xe013;',
//			'icon-magnet' : '&#xe014;',
//			'icon-magic-wand' : '&#xe015;',
//			'icon-hourglass' : '&#xe016;',
//			'icon-graduation' : '&#xe017;',
//			'icon-ghost' : '&#xe018;',
//			'icon-game-controller' : '&#xe019;',
//			'icon-fire' : '&#xe01a;',
//			'icon-eyeglasses' : '&#xe01b;',
//			'icon-envelope-open' : '&#xe01c;',
//			'icon-envelope-letter' : '&#xe01d;',
//			'icon-energy' : '&#xe01e;',
//			'icon-emoticon-smile' : '&#xe01f;',
//			'icon-disc' : '&#xe020;',
//			'icon-cursor-move' : '&#xe021;',
//			'icon-crop' : '&#xe022;',
//			'icon-credit-card' : '&#xe023;',
//			'icon-chemistry' : '&#xe024;',
//			'icon-bell' : '&#xe025;',
//			'icon-badge' : '&#xe026;',
//			'icon-anchor' : '&#xe027;',
//			'icon-action-redo' : '&#xe028;',
//			'icon-action-undo' : '&#xe029;',
//			'icon-bag' : '&#xe02a;',
//			'icon-basket' : '&#xe02b;',
//			'icon-basket-loaded' : '&#xe02c;',
//			'icon-book-open' : '&#xe02d;',
//			'icon-briefcase' : '&#xe02e;',
//			'icon-bubbles' : '&#xe02f;',
//			'icon-calculator' : '&#xe030;',
//			'icon-call-end' : '&#xe031;',
//			'icon-call-in' : '&#xe032;',
//			'icon-call-out' : '&#xe033;',
//			'icon-compass' : '&#xe034;',
//			'icon-cup' : '&#xe035;',
//			'icon-diamond' : '&#xe036;',
//			'icon-direction' : '&#xe037;',
//			'icon-directions' : '&#xe038;',
//			'icon-docs' : '&#xe039;',
//			'icon-drawer' : '&#xe03a;',
//			'icon-drop' : '&#xe03b;',
//			'icon-earphones' : '&#xe03c;',
//			'icon-earphones-alt' : '&#xe03d;',
//			'icon-feed' : '&#xe03e;',
//			'icon-film' : '&#xe03f;',
//			'icon-folder-alt' : '&#xe040;',
//			'icon-frame' : '&#xe041;',
//			'icon-globe' : '&#xe042;',
//			'icon-globe-alt' : '&#xe043;',
//			'icon-handbag' : '&#xe044;',
//			'icon-layers' : '&#xe045;',
//			'icon-map' : '&#xe046;',
//			'icon-picture' : '&#xe047;',
//			'icon-pin' : '&#xe048;',
//			'icon-playlist' : '&#xe049;',
//			'icon-present' : '&#xe04a;',
//			'icon-printer' : '&#xe04b;',
//			'icon-puzzle' : '&#xe04c;',
//			'icon-speech' : '&#xe04d;',
//			'icon-vector' : '&#xe04e;',
//			'icon-wallet' : '&#xe04f;',
//			'icon-arrow-down' : '&#xe050;',
//			'icon-arrow-left' : '&#xe051;',
//			'icon-arrow-right' : '&#xe052;',
//			'icon-arrow-up' : '&#xe053;',
//			'icon-bar-chart' : '&#xe054;',
//			'icon-bulb' : '&#xe055;',
//			'icon-calendar' : '&#xe056;',
//			'icon-control-end' : '&#xe057;',
//			'icon-control-forward' : '&#xe058;',
//			'icon-control-pause' : '&#xe059;',
//			'icon-control-play' : '&#xe05a;',
//			'icon-control-rewind' : '&#xe05b;',
//			'icon-control-start' : '&#xe05c;',
//			'icon-cursor' : '&#xe05d;',
//			'icon-dislike' : '&#xe05e;',
//			'icon-equalizer' : '&#xe05f;',
//			'icon-graph' : '&#xe060;',
//			'icon-grid' : '&#xe061;',
//			'icon-home' : '&#xe062;',
//			'icon-like' : '&#xe063;',
//			'icon-list' : '&#xe064;',
//			'icon-login' : '&#xe065;',
//			'icon-logout' : '&#xe066;',
//			'icon-loop' : '&#xe067;',
//			'icon-microphone' : '&#xe068;',
//			'icon-music-tone' : '&#xe069;',
//			'icon-music-tone-alt' : '&#xe06a;',
//			'icon-note' : '&#xe06b;',
//			'icon-pencil' : '&#xe06c;',
//			'icon-pie-chart' : '&#xe06d;',
//			'icon-question' : '&#xe06e;',
//			'icon-rocket' : '&#xe06f;',
//			'icon-share' : '&#xe070;',
//			'icon-share-alt' : '&#xe071;',
//			'icon-shuffle' : '&#xe072;',
//			'icon-size-actual' : '&#xe073;',
//			'icon-size-fullscreen' : '&#xe074;',
//			'icon-support' : '&#xe075;',
//			'icon-tag' : '&#xe076;',
//			'icon-trash' : '&#xe077;',
//			'icon-umbrella' : '&#xe078;',
//			'icon-wrench' : '&#xe079;',
//			'icon-ban' : '&#xe07a;',
//			'icon-bubble' : '&#xe07b;',
//			'icon-camcorder' : '&#xe07c;',
//			'icon-camera' : '&#xe07d;',
//			'icon-check' : '&#xe07e;',
//			'icon-clock' : '&#xe07f;',
//			'icon-close' : '&#xe080;',
//			'icon-cloud-download' : '&#xe081;',
//			'icon-cloud-upload' : '&#xe082;',
//			'icon-doc' : '&#xe083;',
//			'icon-envelope' : '&#xe084;',
//			'icon-eye' : '&#xe085;',
//			'icon-flag' : '&#xe086;',
//			'icon-folder' : '&#xe087;',
//			'icon-heart' : '&#xe088;',
//			'icon-info' : '&#xe089;',
//			'icon-key' : '&#xe08a;',
//			'icon-link' : '&#xe08b;',
//			'icon-lock' : '&#xe08c;',
//			'icon-lock-open' : '&#xe08d;',
//			'icon-magnifier' : '&#xe08e;',
//			'icon-magnifier-add' : '&#xe08f;',
//			'icon-magnifier-remove' : '&#xe090;',
//			'icon-paper-clip' : '&#xe091;',
//			'icon-paper-plane' : '&#xe092;',
//			'icon-plus' : '&#xe093;',
//			'icon-pointer' : '&#xe094;',
//			'icon-power' : '&#xe095;',
//			'icon-refresh' : '&#xe096;',
//			'icon-reload' : '&#xe097;',
//			'icon-settings' : '&#xe098;',
//			'icon-star' : '&#xe099;',
//			'icon-symbol-female' : '&#xe09a;',
//			'icon-symbol-male' : '&#xe09b;',
//			'icon-target' : '&#xe09c;',
//			'icon-user-female' : '&#xe09d;',
//			'icon-user-male' : '&#xe09e;',
//			'icon-volume-1' : '&#xe09f;',
//			'icon-volume-2' : '&#xe0a0;',
//			'icon-volume-off' : '&#xe0a1;'
//		},
//		els = document.getElementsByTagName('*'),
//		i, attr, c, el;
//	for (i = 0; ; i += 1) {
//		el = els[i];
//		if(!el) {
//			break;
//		}
//		attr = el.getAttribute('data-icon');
//		if (attr) {
//			addIcon(el, attr);
//		}
//		c = el.className;
//		c = c.match(/icon-[^\s'"]+/);
//		if (c && icons[c[0]]) {
//			addIcon(el, icons[c[0]]);
//		}
//	}
//};